1 /*
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  */
7 #ifndef _UAPI_LINUX_LANDLOCK_H
8 #define _UAPI_LINUX_LANDLOCK_H
9 #include <linux/types.h>
10 struct landlock_ruleset_attr {
11   __u64 handled_access_fs;
12   __u64 handled_access_net;
13 };
14 #define LANDLOCK_CREATE_RULESET_VERSION (1U << 0)
15 enum landlock_rule_type {
16   LANDLOCK_RULE_PATH_BENEATH = 1,
17   LANDLOCK_RULE_NET_PORT,
18 };
19 struct landlock_path_beneath_attr {
20   __u64 allowed_access;
21   __s32 parent_fd;
22 } __attribute__((packed));
23 struct landlock_net_port_attr {
24   __u64 allowed_access;
25   __u64 port;
26 };
27 #define LANDLOCK_ACCESS_FS_EXECUTE (1ULL << 0)
28 #define LANDLOCK_ACCESS_FS_WRITE_FILE (1ULL << 1)
29 #define LANDLOCK_ACCESS_FS_READ_FILE (1ULL << 2)
30 #define LANDLOCK_ACCESS_FS_READ_DIR (1ULL << 3)
31 #define LANDLOCK_ACCESS_FS_REMOVE_DIR (1ULL << 4)
32 #define LANDLOCK_ACCESS_FS_REMOVE_FILE (1ULL << 5)
33 #define LANDLOCK_ACCESS_FS_MAKE_CHAR (1ULL << 6)
34 #define LANDLOCK_ACCESS_FS_MAKE_DIR (1ULL << 7)
35 #define LANDLOCK_ACCESS_FS_MAKE_REG (1ULL << 8)
36 #define LANDLOCK_ACCESS_FS_MAKE_SOCK (1ULL << 9)
37 #define LANDLOCK_ACCESS_FS_MAKE_FIFO (1ULL << 10)
38 #define LANDLOCK_ACCESS_FS_MAKE_BLOCK (1ULL << 11)
39 #define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12)
40 #define LANDLOCK_ACCESS_FS_REFER (1ULL << 13)
41 #define LANDLOCK_ACCESS_FS_TRUNCATE (1ULL << 14)
42 #define LANDLOCK_ACCESS_FS_IOCTL_DEV (1ULL << 15)
43 #define LANDLOCK_ACCESS_NET_BIND_TCP (1ULL << 0)
44 #define LANDLOCK_ACCESS_NET_CONNECT_TCP (1ULL << 1)
45 #endif
46