0001 #ifndef _UAPI_LINUX_MOUNT_H
0002 #define _UAPI_LINUX_MOUNT_H
0003
0004 #include <linux/types.h>
0005
0006
0007
0008
0009
0010
0011
0012
0013 #define MS_RDONLY 1
0014 #define MS_NOSUID 2
0015 #define MS_NODEV 4
0016 #define MS_NOEXEC 8
0017 #define MS_SYNCHRONOUS 16
0018 #define MS_REMOUNT 32
0019 #define MS_MANDLOCK 64
0020 #define MS_DIRSYNC 128
0021 #define MS_NOSYMFOLLOW 256
0022 #define MS_NOATIME 1024
0023 #define MS_NODIRATIME 2048
0024 #define MS_BIND 4096
0025 #define MS_MOVE 8192
0026 #define MS_REC 16384
0027 #define MS_VERBOSE 32768
0028
0029 #define MS_SILENT 32768
0030 #define MS_POSIXACL (1<<16)
0031 #define MS_UNBINDABLE (1<<17)
0032 #define MS_PRIVATE (1<<18)
0033 #define MS_SLAVE (1<<19)
0034 #define MS_SHARED (1<<20)
0035 #define MS_RELATIME (1<<21)
0036 #define MS_KERNMOUNT (1<<22)
0037 #define MS_I_VERSION (1<<23)
0038 #define MS_STRICTATIME (1<<24)
0039 #define MS_LAZYTIME (1<<25)
0040
0041
0042 #define MS_SUBMOUNT (1<<26)
0043 #define MS_NOREMOTELOCK (1<<27)
0044 #define MS_NOSEC (1<<28)
0045 #define MS_BORN (1<<29)
0046 #define MS_ACTIVE (1<<30)
0047 #define MS_NOUSER (1<<31)
0048
0049
0050
0051
0052 #define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|\
0053 MS_LAZYTIME)
0054
0055
0056
0057
0058 #define MS_MGC_VAL 0xC0ED0000
0059 #define MS_MGC_MSK 0xffff0000
0060
0061
0062
0063
0064 #define OPEN_TREE_CLONE 1
0065 #define OPEN_TREE_CLOEXEC O_CLOEXEC
0066
0067
0068
0069
0070 #define MOVE_MOUNT_F_SYMLINKS 0x00000001
0071 #define MOVE_MOUNT_F_AUTOMOUNTS 0x00000002
0072 #define MOVE_MOUNT_F_EMPTY_PATH 0x00000004
0073 #define MOVE_MOUNT_T_SYMLINKS 0x00000010
0074 #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020
0075 #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040
0076 #define MOVE_MOUNT_SET_GROUP 0x00000100
0077 #define MOVE_MOUNT__MASK 0x00000177
0078
0079
0080
0081
0082 #define FSOPEN_CLOEXEC 0x00000001
0083
0084
0085
0086
0087 #define FSPICK_CLOEXEC 0x00000001
0088 #define FSPICK_SYMLINK_NOFOLLOW 0x00000002
0089 #define FSPICK_NO_AUTOMOUNT 0x00000004
0090 #define FSPICK_EMPTY_PATH 0x00000008
0091
0092
0093
0094
0095 enum fsconfig_command {
0096 FSCONFIG_SET_FLAG = 0,
0097 FSCONFIG_SET_STRING = 1,
0098 FSCONFIG_SET_BINARY = 2,
0099 FSCONFIG_SET_PATH = 3,
0100 FSCONFIG_SET_PATH_EMPTY = 4,
0101 FSCONFIG_SET_FD = 5,
0102 FSCONFIG_CMD_CREATE = 6,
0103 FSCONFIG_CMD_RECONFIGURE = 7,
0104 };
0105
0106
0107
0108
0109 #define FSMOUNT_CLOEXEC 0x00000001
0110
0111
0112
0113
0114 #define MOUNT_ATTR_RDONLY 0x00000001
0115 #define MOUNT_ATTR_NOSUID 0x00000002
0116 #define MOUNT_ATTR_NODEV 0x00000004
0117 #define MOUNT_ATTR_NOEXEC 0x00000008
0118 #define MOUNT_ATTR__ATIME 0x00000070
0119 #define MOUNT_ATTR_RELATIME 0x00000000
0120 #define MOUNT_ATTR_NOATIME 0x00000010
0121 #define MOUNT_ATTR_STRICTATIME 0x00000020
0122 #define MOUNT_ATTR_NODIRATIME 0x00000080
0123 #define MOUNT_ATTR_IDMAP 0x00100000
0124 #define MOUNT_ATTR_NOSYMFOLLOW 0x00200000
0125
0126
0127
0128
0129 struct mount_attr {
0130 __u64 attr_set;
0131 __u64 attr_clr;
0132 __u64 propagation;
0133 __u64 userns_fd;
0134 };
0135
0136
0137 #define MOUNT_ATTR_SIZE_VER0 32
0138
0139 #endif