1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 #ifndef __LINUX_NSFS_H 3 #define __LINUX_NSFS_H 4 5 #include <linux/ioctl.h> 6 #include <linux/types.h> 7 8 #define NSIO 0xb7 9 10 /* Returns a file descriptor that refers to an owning user namespace */ 11 #define NS_GET_USERNS _IO(NSIO, 0x1) 12 /* Returns a file descriptor that refers to a parent namespace */ 13 #define NS_GET_PARENT _IO(NSIO, 0x2) 14 /* Returns the type of namespace (CLONE_NEW* value) referred to by 15 file descriptor */ 16 #define NS_GET_NSTYPE _IO(NSIO, 0x3) 17 /* Get owner UID (in the caller's user namespace) for a user namespace */ 18 #define NS_GET_OWNER_UID _IO(NSIO, 0x4) 19 /* Get the id for a mount namespace */ 20 #define NS_GET_MNTNS_ID _IOR(NSIO, 0x5, __u64) 21 /* Translate pid from target pid namespace into the caller's pid namespace. */ 22 #define NS_GET_PID_FROM_PIDNS _IOR(NSIO, 0x6, int) 23 /* Return thread-group leader id of pid in the callers pid namespace. */ 24 #define NS_GET_TGID_FROM_PIDNS _IOR(NSIO, 0x7, int) 25 /* Translate pid from caller's pid namespace into a target pid namespace. */ 26 #define NS_GET_PID_IN_PIDNS _IOR(NSIO, 0x8, int) 27 /* Return thread-group leader id of pid in the target pid namespace. */ 28 #define NS_GET_TGID_IN_PIDNS _IOR(NSIO, 0x9, int) 29 30 struct mnt_ns_info { 31 __u32 size; 32 __u32 nr_mounts; 33 __u64 mnt_ns_id; 34 }; 35 36 #define MNT_NS_INFO_SIZE_VER0 16 /* size of first published struct */ 37 38 /* Get information about namespace. */ 39 #define NS_MNT_GET_INFO _IOR(NSIO, 10, struct mnt_ns_info) 40 /* Get next namespace. */ 41 #define NS_MNT_GET_NEXT _IOR(NSIO, 11, struct mnt_ns_info) 42 /* Get previous namespace. */ 43 #define NS_MNT_GET_PREV _IOR(NSIO, 12, struct mnt_ns_info) 44 45 #endif /* __LINUX_NSFS_H */ 46