mirror of https://github.com/torvalds/linux.git
nsfs: update tools header
Ensure all the new uapi bits are visible for the selftests. Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-21-2e6f823ebdc0@kernel.org Tested-by: syzbot@syzkaller.appspotmail.com Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
b36d4b6aa8
commit
6fc9baa49d
|
|
@ -53,6 +53,76 @@ enum init_ns_ino {
|
||||||
TIME_NS_INIT_INO = 0xEFFFFFFAU,
|
TIME_NS_INIT_INO = 0xEFFFFFFAU,
|
||||||
NET_NS_INIT_INO = 0xEFFFFFF9U,
|
NET_NS_INIT_INO = 0xEFFFFFF9U,
|
||||||
MNT_NS_INIT_INO = 0xEFFFFFF8U,
|
MNT_NS_INIT_INO = 0xEFFFFFF8U,
|
||||||
|
#ifdef __KERNEL__
|
||||||
|
MNT_NS_ANON_INO = 0xEFFFFFF7U,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct nsfs_file_handle {
|
||||||
|
__u64 ns_id;
|
||||||
|
__u32 ns_type;
|
||||||
|
__u32 ns_inum;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define NSFS_FILE_HANDLE_SIZE_VER0 16 /* sizeof first published struct */
|
||||||
|
#define NSFS_FILE_HANDLE_SIZE_LATEST sizeof(struct nsfs_file_handle) /* sizeof latest published struct */
|
||||||
|
|
||||||
|
enum init_ns_id {
|
||||||
|
IPC_NS_INIT_ID = 1ULL,
|
||||||
|
UTS_NS_INIT_ID = 2ULL,
|
||||||
|
USER_NS_INIT_ID = 3ULL,
|
||||||
|
PID_NS_INIT_ID = 4ULL,
|
||||||
|
CGROUP_NS_INIT_ID = 5ULL,
|
||||||
|
TIME_NS_INIT_ID = 6ULL,
|
||||||
|
NET_NS_INIT_ID = 7ULL,
|
||||||
|
MNT_NS_INIT_ID = 8ULL,
|
||||||
|
#ifdef __KERNEL__
|
||||||
|
NS_LAST_INIT_ID = MNT_NS_INIT_ID,
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ns_type {
|
||||||
|
TIME_NS = (1ULL << 7), /* CLONE_NEWTIME */
|
||||||
|
MNT_NS = (1ULL << 17), /* CLONE_NEWNS */
|
||||||
|
CGROUP_NS = (1ULL << 25), /* CLONE_NEWCGROUP */
|
||||||
|
UTS_NS = (1ULL << 26), /* CLONE_NEWUTS */
|
||||||
|
IPC_NS = (1ULL << 27), /* CLONE_NEWIPC */
|
||||||
|
USER_NS = (1ULL << 28), /* CLONE_NEWUSER */
|
||||||
|
PID_NS = (1ULL << 29), /* CLONE_NEWPID */
|
||||||
|
NET_NS = (1ULL << 30), /* CLONE_NEWNET */
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct ns_id_req - namespace ID request structure
|
||||||
|
* @size: size of this structure
|
||||||
|
* @spare: reserved for future use
|
||||||
|
* @filter: filter mask
|
||||||
|
* @ns_id: last namespace id
|
||||||
|
* @user_ns_id: owning user namespace ID
|
||||||
|
*
|
||||||
|
* Structure for passing namespace ID and miscellaneous parameters to
|
||||||
|
* statns(2) and listns(2).
|
||||||
|
*
|
||||||
|
* For statns(2) @param represents the request mask.
|
||||||
|
* For listns(2) @param represents the last listed mount id (or zero).
|
||||||
|
*/
|
||||||
|
struct ns_id_req {
|
||||||
|
__u32 size;
|
||||||
|
__u32 spare;
|
||||||
|
__u64 ns_id;
|
||||||
|
struct /* listns */ {
|
||||||
|
__u32 ns_type;
|
||||||
|
__u32 spare2;
|
||||||
|
__u64 user_ns_id;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Special @user_ns_id value that can be passed to listns()
|
||||||
|
*/
|
||||||
|
#define LISTNS_CURRENT_USER 0xffffffffffffffff /* Caller's userns */
|
||||||
|
|
||||||
|
/* List of all ns_id_req versions. */
|
||||||
|
#define NS_ID_REQ_SIZE_VER0 32 /* sizeof first published struct */
|
||||||
|
|
||||||
#endif /* __LINUX_NSFS_H */
|
#endif /* __LINUX_NSFS_H */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue