2 * Copyright (c) 2019 Dmitry V. Levin <ldv@altlinux.org>
5 * SPDX-License-Identifier: LGPL-2.1-or-later
9 #ifdef HAVE_LINUX_MOUNT_H
10 # include <linux/mount.h>
12 #include "xlat/fsconfig_cmds.h"
16 const int fs_fd = tcp->u_arg[0];
17 const unsigned int cmd = tcp->u_arg[1];
18 const kernel_ulong_t key = tcp->u_arg[2];
19 const kernel_ulong_t value = tcp->u_arg[3];
20 const int aux = tcp->u_arg[4];
25 printxval(fsconfig_cmds, cmd, "FSCONFIG_???");
29 case FSCONFIG_SET_FLAG:
30 case FSCONFIG_SET_STRING:
31 case FSCONFIG_SET_BINARY:
32 case FSCONFIG_SET_PATH:
33 case FSCONFIG_SET_PATH_EMPTY:
35 printstr_ex(tcp, key, 256, QUOTE_0_TERMINATED);
37 case FSCONFIG_CMD_CREATE:
38 case FSCONFIG_CMD_RECONFIGURE:
46 case FSCONFIG_SET_STRING:
47 printstr_ex(tcp, value, 256, QUOTE_0_TERMINATED);
49 case FSCONFIG_SET_PATH:
50 case FSCONFIG_SET_PATH_EMPTY:
51 printpath(tcp, value);
53 case FSCONFIG_SET_BINARY:
54 if (aux >= 0 && aux <= 1024 * 1024) {
55 printstr_ex(tcp, value, aux, QUOTE_FORCE_HEX);
58 ATTRIBUTE_FALLTHROUGH;
59 case FSCONFIG_SET_FLAG:
61 case FSCONFIG_CMD_CREATE:
62 case FSCONFIG_CMD_RECONFIGURE:
70 case FSCONFIG_SET_PATH:
71 case FSCONFIG_SET_PATH_EMPTY:
72 print_dirfd(tcp, aux);
77 case FSCONFIG_SET_FLAG:
78 case FSCONFIG_SET_STRING:
79 case FSCONFIG_SET_BINARY:
80 case FSCONFIG_CMD_CREATE:
81 case FSCONFIG_CMD_RECONFIGURE: