1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI_LINUX_MOUNT_H
20 #define _UAPI_LINUX_MOUNT_H
21 #include <linux/types.h>
22 #define MS_RDONLY 1
23 #define MS_NOSUID 2
24 #define MS_NODEV 4
25 #define MS_NOEXEC 8
26 #define MS_SYNCHRONOUS 16
27 #define MS_REMOUNT 32
28 #define MS_MANDLOCK 64
29 #define MS_DIRSYNC 128
30 #define MS_NOSYMFOLLOW 256
31 #define MS_NOATIME 1024
32 #define MS_NODIRATIME 2048
33 #define MS_BIND 4096
34 #define MS_MOVE 8192
35 #define MS_REC 16384
36 #define MS_VERBOSE 32768
37 #define MS_SILENT 32768
38 #define MS_POSIXACL (1 << 16)
39 #define MS_UNBINDABLE (1 << 17)
40 #define MS_PRIVATE (1 << 18)
41 #define MS_SLAVE (1 << 19)
42 #define MS_SHARED (1 << 20)
43 #define MS_RELATIME (1 << 21)
44 #define MS_KERNMOUNT (1 << 22)
45 #define MS_I_VERSION (1 << 23)
46 #define MS_STRICTATIME (1 << 24)
47 #define MS_LAZYTIME (1 << 25)
48 #define MS_SUBMOUNT (1 << 26)
49 #define MS_NOREMOTELOCK (1 << 27)
50 #define MS_NOSEC (1 << 28)
51 #define MS_BORN (1 << 29)
52 #define MS_ACTIVE (1 << 30)
53 #define MS_NOUSER (1 << 31)
54 #define MS_RMT_MASK (MS_RDONLY | MS_SYNCHRONOUS | MS_MANDLOCK | MS_I_VERSION | MS_LAZYTIME)
55 #define MS_MGC_VAL 0xC0ED0000
56 #define MS_MGC_MSK 0xffff0000
57 #define OPEN_TREE_CLONE 1
58 #define OPEN_TREE_CLOEXEC O_CLOEXEC
59 #define MOVE_MOUNT_F_SYMLINKS 0x00000001
60 #define MOVE_MOUNT_F_AUTOMOUNTS 0x00000002
61 #define MOVE_MOUNT_F_EMPTY_PATH 0x00000004
62 #define MOVE_MOUNT_T_SYMLINKS 0x00000010
63 #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020
64 #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040
65 #define MOVE_MOUNT__MASK 0x00000077
66 #define FSOPEN_CLOEXEC 0x00000001
67 #define FSPICK_CLOEXEC 0x00000001
68 #define FSPICK_SYMLINK_NOFOLLOW 0x00000002
69 #define FSPICK_NO_AUTOMOUNT 0x00000004
70 #define FSPICK_EMPTY_PATH 0x00000008
71 enum fsconfig_command {
72   FSCONFIG_SET_FLAG = 0,
73   FSCONFIG_SET_STRING = 1,
74   FSCONFIG_SET_BINARY = 2,
75   FSCONFIG_SET_PATH = 3,
76   FSCONFIG_SET_PATH_EMPTY = 4,
77   FSCONFIG_SET_FD = 5,
78   FSCONFIG_CMD_CREATE = 6,
79   FSCONFIG_CMD_RECONFIGURE = 7,
80 };
81 #define FSMOUNT_CLOEXEC 0x00000001
82 #define MOUNT_ATTR_RDONLY 0x00000001
83 #define MOUNT_ATTR_NOSUID 0x00000002
84 #define MOUNT_ATTR_NODEV 0x00000004
85 #define MOUNT_ATTR_NOEXEC 0x00000008
86 #define MOUNT_ATTR__ATIME 0x00000070
87 #define MOUNT_ATTR_RELATIME 0x00000000
88 #define MOUNT_ATTR_NOATIME 0x00000010
89 #define MOUNT_ATTR_STRICTATIME 0x00000020
90 #define MOUNT_ATTR_NODIRATIME 0x00000080
91 #define MOUNT_ATTR_IDMAP 0x00100000
92 struct mount_attr {
93   __u64 attr_set;
94   __u64 attr_clr;
95   __u64 propagation;
96   __u64 userns_fd;
97 };
98 #define MOUNT_ATTR_SIZE_VER0 32
99 #endif
100