hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#ifndef _UAPI_LINUX_MOUNT_H
#define _UAPI_LINUX_MOUNT_H
 
/*
 * These are the fs-independent mount-flags: up to 32 flags are supported
 *
 * Usage of these is restricted within the kernel to core mount(2) code and
 * callers of sys_mount() only.  Filesystems should be using the SB_*
 * equivalent instead.
 */
#define MS_RDONLY     1    /* Mount read-only */
#define MS_NOSUID     2    /* Ignore suid and sgid bits */
#define MS_NODEV     4    /* Disallow access to device special files */
#define MS_NOEXEC     8    /* Disallow program execution */
#define MS_SYNCHRONOUS    16    /* Writes are synced at once */
#define MS_REMOUNT    32    /* Alter flags of a mounted FS */
#define MS_MANDLOCK    64    /* Allow mandatory locks on an FS */
#define MS_DIRSYNC    128    /* Directory modifications are synchronous */
#define MS_NOSYMFOLLOW    256    /* Do not follow symlinks */
#define MS_NOATIME    1024    /* Do not update access times. */
#define MS_NODIRATIME    2048    /* Do not update directory access times */
#define MS_BIND        4096
#define MS_MOVE        8192
#define MS_REC        16384
#define MS_VERBOSE    32768    /* War is peace. Verbosity is silence.
                  MS_VERBOSE is deprecated. */
#define MS_SILENT    32768
#define MS_POSIXACL    (1<<16)    /* VFS does not apply the umask */
#define MS_UNBINDABLE    (1<<17)    /* change to unbindable */
#define MS_PRIVATE    (1<<18)    /* change to private */
#define MS_SLAVE    (1<<19)    /* change to slave */
#define MS_SHARED    (1<<20)    /* change to shared */
#define MS_RELATIME    (1<<21)    /* Update atime relative to mtime/ctime. */
#define MS_KERNMOUNT    (1<<22) /* this is a kern_mount call */
#define MS_I_VERSION    (1<<23) /* Update inode I_version field */
#define MS_STRICTATIME    (1<<24) /* Always perform atime updates */
#define MS_LAZYTIME    (1<<25) /* Update the on-disk [acm]times lazily */
 
/* These sb flags are internal to the kernel */
#define MS_SUBMOUNT     (1<<26)
#define MS_NOREMOTELOCK    (1<<27)
#define MS_NOSEC    (1<<28)
#define MS_BORN        (1<<29)
#define MS_ACTIVE    (1<<30)
#define MS_NOUSER    (1<<31)
 
/*
 * Superblock flags that can be altered by MS_REMOUNT
 */
#define MS_RMT_MASK    (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|\
            MS_LAZYTIME)
 
/*
 * Old magic mount flag and mask
 */
#define MS_MGC_VAL 0xC0ED0000
#define MS_MGC_MSK 0xffff0000
 
/*
 * open_tree() flags.
 */
#define OPEN_TREE_CLONE        1        /* Clone the target tree and attach the clone */
#define OPEN_TREE_CLOEXEC    O_CLOEXEC    /* Close the file on execve() */
 
/*
 * move_mount() flags.
 */
#define MOVE_MOUNT_F_SYMLINKS        0x00000001 /* Follow symlinks on from path */
#define MOVE_MOUNT_F_AUTOMOUNTS        0x00000002 /* Follow automounts on from path */
#define MOVE_MOUNT_F_EMPTY_PATH        0x00000004 /* Empty from path permitted */
#define MOVE_MOUNT_T_SYMLINKS        0x00000010 /* Follow symlinks on to path */
#define MOVE_MOUNT_T_AUTOMOUNTS        0x00000020 /* Follow automounts on to path */
#define MOVE_MOUNT_T_EMPTY_PATH        0x00000040 /* Empty to path permitted */
#define MOVE_MOUNT__MASK        0x00000077
 
/*
 * fsopen() flags.
 */
#define FSOPEN_CLOEXEC        0x00000001
 
/*
 * fspick() flags.
 */
#define FSPICK_CLOEXEC        0x00000001
#define FSPICK_SYMLINK_NOFOLLOW    0x00000002
#define FSPICK_NO_AUTOMOUNT    0x00000004
#define FSPICK_EMPTY_PATH    0x00000008
 
/*
 * The type of fsconfig() call made.
 */
enum fsconfig_command {
   FSCONFIG_SET_FLAG    = 0,    /* Set parameter, supplying no value */
   FSCONFIG_SET_STRING    = 1,    /* Set parameter, supplying a string value */
   FSCONFIG_SET_BINARY    = 2,    /* Set parameter, supplying a binary blob value */
   FSCONFIG_SET_PATH    = 3,    /* Set parameter, supplying an object by path */
   FSCONFIG_SET_PATH_EMPTY    = 4,    /* Set parameter, supplying an object by (empty) path */
   FSCONFIG_SET_FD        = 5,    /* Set parameter, supplying an object by fd */
   FSCONFIG_CMD_CREATE    = 6,    /* Invoke superblock creation */
   FSCONFIG_CMD_RECONFIGURE = 7,    /* Invoke superblock reconfiguration */
};
 
/*
 * fsmount() flags.
 */
#define FSMOUNT_CLOEXEC        0x00000001
 
/*
 * Mount attributes.
 */
#define MOUNT_ATTR_RDONLY    0x00000001 /* Mount read-only */
#define MOUNT_ATTR_NOSUID    0x00000002 /* Ignore suid and sgid bits */
#define MOUNT_ATTR_NODEV    0x00000004 /* Disallow access to device special files */
#define MOUNT_ATTR_NOEXEC    0x00000008 /* Disallow program execution */
#define MOUNT_ATTR__ATIME    0x00000070 /* Setting on how atime should be updated */
#define MOUNT_ATTR_RELATIME    0x00000000 /* - Update atime relative to mtime/ctime. */
#define MOUNT_ATTR_NOATIME    0x00000010 /* - Do not update access times. */
#define MOUNT_ATTR_STRICTATIME    0x00000020 /* - Always perform atime updates */
#define MOUNT_ATTR_NODIRATIME    0x00000080 /* Do not update directory access times */
 
#endif /* _UAPI_LINUX_MOUNT_H */