blob: c4278b5323a7bf7f21eb8b352632882758449863 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Christopher Ferrisd842e432019-03-07 10:21:59 -08007#ifndef _UAPI_LINUX_MOUNT_H
8#define _UAPI_LINUX_MOUNT_H
Christopher Ferrisa9750ed2021-05-03 14:02:49 -07009#include <linux/types.h>
Christopher Ferrisd842e432019-03-07 10:21:59 -080010#define MS_RDONLY 1
11#define MS_NOSUID 2
12#define MS_NODEV 4
13#define MS_NOEXEC 8
14#define MS_SYNCHRONOUS 16
15#define MS_REMOUNT 32
16#define MS_MANDLOCK 64
17#define MS_DIRSYNC 128
Christopher Ferris32ff3f82020-12-14 13:10:04 -080018#define MS_NOSYMFOLLOW 256
Christopher Ferrisd842e432019-03-07 10:21:59 -080019#define MS_NOATIME 1024
20#define MS_NODIRATIME 2048
21#define MS_BIND 4096
22#define MS_MOVE 8192
23#define MS_REC 16384
24#define MS_VERBOSE 32768
25#define MS_SILENT 32768
26#define MS_POSIXACL (1 << 16)
27#define MS_UNBINDABLE (1 << 17)
28#define MS_PRIVATE (1 << 18)
29#define MS_SLAVE (1 << 19)
30#define MS_SHARED (1 << 20)
31#define MS_RELATIME (1 << 21)
32#define MS_KERNMOUNT (1 << 22)
33#define MS_I_VERSION (1 << 23)
34#define MS_STRICTATIME (1 << 24)
35#define MS_LAZYTIME (1 << 25)
36#define MS_SUBMOUNT (1 << 26)
37#define MS_NOREMOTELOCK (1 << 27)
38#define MS_NOSEC (1 << 28)
39#define MS_BORN (1 << 29)
40#define MS_ACTIVE (1 << 30)
41#define MS_NOUSER (1 << 31)
42#define MS_RMT_MASK (MS_RDONLY | MS_SYNCHRONOUS | MS_MANDLOCK | MS_I_VERSION | MS_LAZYTIME)
43#define MS_MGC_VAL 0xC0ED0000
44#define MS_MGC_MSK 0xffff0000
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -070045#define OPEN_TREE_CLONE 1
46#define OPEN_TREE_CLOEXEC O_CLOEXEC
47#define MOVE_MOUNT_F_SYMLINKS 0x00000001
48#define MOVE_MOUNT_F_AUTOMOUNTS 0x00000002
49#define MOVE_MOUNT_F_EMPTY_PATH 0x00000004
50#define MOVE_MOUNT_T_SYMLINKS 0x00000010
51#define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020
52#define MOVE_MOUNT_T_EMPTY_PATH 0x00000040
Christopher Ferris2abfa9e2021-11-01 16:26:06 -070053#define MOVE_MOUNT_SET_GROUP 0x00000100
Christopher Ferris8666d042023-09-06 14:55:31 -070054#define MOVE_MOUNT_BENEATH 0x00000200
55#define MOVE_MOUNT__MASK 0x00000377
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -070056#define FSOPEN_CLOEXEC 0x00000001
57#define FSPICK_CLOEXEC 0x00000001
58#define FSPICK_SYMLINK_NOFOLLOW 0x00000002
59#define FSPICK_NO_AUTOMOUNT 0x00000004
60#define FSPICK_EMPTY_PATH 0x00000008
61enum fsconfig_command {
62 FSCONFIG_SET_FLAG = 0,
63 FSCONFIG_SET_STRING = 1,
64 FSCONFIG_SET_BINARY = 2,
65 FSCONFIG_SET_PATH = 3,
66 FSCONFIG_SET_PATH_EMPTY = 4,
67 FSCONFIG_SET_FD = 5,
68 FSCONFIG_CMD_CREATE = 6,
69 FSCONFIG_CMD_RECONFIGURE = 7,
Christopher Ferris67d1e5e2023-10-31 13:36:37 -070070 FSCONFIG_CMD_CREATE_EXCL = 8,
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -070071};
72#define FSMOUNT_CLOEXEC 0x00000001
73#define MOUNT_ATTR_RDONLY 0x00000001
74#define MOUNT_ATTR_NOSUID 0x00000002
75#define MOUNT_ATTR_NODEV 0x00000004
76#define MOUNT_ATTR_NOEXEC 0x00000008
77#define MOUNT_ATTR__ATIME 0x00000070
78#define MOUNT_ATTR_RELATIME 0x00000000
79#define MOUNT_ATTR_NOATIME 0x00000010
80#define MOUNT_ATTR_STRICTATIME 0x00000020
81#define MOUNT_ATTR_NODIRATIME 0x00000080
Christopher Ferrisa9750ed2021-05-03 14:02:49 -070082#define MOUNT_ATTR_IDMAP 0x00100000
Christopher Ferris3a39c0b2021-09-02 00:03:38 +000083#define MOUNT_ATTR_NOSYMFOLLOW 0x00200000
Christopher Ferrisa9750ed2021-05-03 14:02:49 -070084struct mount_attr {
85 __u64 attr_set;
86 __u64 attr_clr;
87 __u64 propagation;
88 __u64 userns_fd;
89};
90#define MOUNT_ATTR_SIZE_VER0 32
Christopher Ferrisb830ddf2024-03-28 11:48:08 -070091struct statmount {
92 __u32 size;
Christopher Ferris4ba54492024-09-18 16:25:22 +000093 __u32 mnt_opts;
Christopher Ferrisb830ddf2024-03-28 11:48:08 -070094 __u64 mask;
95 __u32 sb_dev_major;
96 __u32 sb_dev_minor;
97 __u64 sb_magic;
98 __u32 sb_flags;
99 __u32 fs_type;
100 __u64 mnt_id;
101 __u64 mnt_parent_id;
102 __u32 mnt_id_old;
103 __u32 mnt_parent_id_old;
104 __u64 mnt_attr;
105 __u64 mnt_propagation;
106 __u64 mnt_peer_group;
107 __u64 mnt_master;
108 __u64 propagate_from;
109 __u32 mnt_root;
110 __u32 mnt_point;
Christopher Ferris4ba54492024-09-18 16:25:22 +0000111 __u64 mnt_ns_id;
112 __u64 __spare2[49];
Christopher Ferrisb830ddf2024-03-28 11:48:08 -0700113 char str[];
114};
115struct mnt_id_req {
116 __u32 size;
117 __u32 spare;
118 __u64 mnt_id;
119 __u64 param;
Christopher Ferris4ba54492024-09-18 16:25:22 +0000120 __u64 mnt_ns_id;
Christopher Ferrisb830ddf2024-03-28 11:48:08 -0700121};
122#define MNT_ID_REQ_SIZE_VER0 24
Christopher Ferris4ba54492024-09-18 16:25:22 +0000123#define MNT_ID_REQ_SIZE_VER1 32
Christopher Ferrisb830ddf2024-03-28 11:48:08 -0700124#define STATMOUNT_SB_BASIC 0x00000001U
125#define STATMOUNT_MNT_BASIC 0x00000002U
126#define STATMOUNT_PROPAGATE_FROM 0x00000004U
127#define STATMOUNT_MNT_ROOT 0x00000008U
128#define STATMOUNT_MNT_POINT 0x00000010U
129#define STATMOUNT_FS_TYPE 0x00000020U
Christopher Ferris4ba54492024-09-18 16:25:22 +0000130#define STATMOUNT_MNT_NS_ID 0x00000040U
131#define STATMOUNT_MNT_OPTS 0x00000080U
Christopher Ferrisb830ddf2024-03-28 11:48:08 -0700132#define LSMT_ROOT 0xffffffffffffffff
Christopher Ferris4ba54492024-09-18 16:25:22 +0000133#define LISTMOUNT_REVERSE (1 << 0)
Christopher Ferrisd842e432019-03-07 10:21:59 -0800134#endif