include/linux/proc_ns.h
Source file repositories/reference/linux-study-clean/include/linux/proc_ns.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/proc_ns.h- Extension
.h- Size
- 2004 bytes
- Lines
- 71
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/nsfs.huapi/linux/nsfs.h
Detected Declarations
struct pid_namespacestruct nssetstruct pathstruct task_structstruct inodestruct proc_ns_operationsfunction proc_alloc_inumfunction proc_free_inum
Annotated Snippet
struct proc_ns_operations {
const char *name;
const char *real_ns_name;
struct ns_common *(*get)(struct task_struct *task);
void (*put)(struct ns_common *ns);
int (*install)(struct nsset *nsset, struct ns_common *ns);
struct user_namespace *(*owner)(struct ns_common *ns);
struct ns_common *(*get_parent)(struct ns_common *ns);
} __randomize_layout;
extern const struct proc_ns_operations netns_operations;
extern const struct proc_ns_operations utsns_operations;
extern const struct proc_ns_operations ipcns_operations;
extern const struct proc_ns_operations pidns_operations;
extern const struct proc_ns_operations pidns_for_children_operations;
extern const struct proc_ns_operations userns_operations;
extern const struct proc_ns_operations mntns_operations;
extern const struct proc_ns_operations cgroupns_operations;
extern const struct proc_ns_operations timens_operations;
extern const struct proc_ns_operations timens_for_children_operations;
/*
* We always define these enumerators
*/
enum {
PROC_IPC_INIT_INO = IPC_NS_INIT_INO,
PROC_UTS_INIT_INO = UTS_NS_INIT_INO,
PROC_USER_INIT_INO = USER_NS_INIT_INO,
PROC_PID_INIT_INO = PID_NS_INIT_INO,
PROC_CGROUP_INIT_INO = CGROUP_NS_INIT_INO,
PROC_TIME_INIT_INO = TIME_NS_INIT_INO,
PROC_NET_INIT_INO = NET_NS_INIT_INO,
PROC_MNT_INIT_INO = MNT_NS_INIT_INO,
};
#ifdef CONFIG_PROC_FS
extern int proc_alloc_inum(unsigned int *pino);
extern void proc_free_inum(unsigned int inum);
#else /* CONFIG_PROC_FS */
static inline int proc_alloc_inum(unsigned int *inum)
{
*inum = 1;
return 0;
}
static inline void proc_free_inum(unsigned int inum) {}
#endif /* CONFIG_PROC_FS */
#define get_proc_ns(inode) ((struct ns_common *)(inode)->i_private)
#endif /* _LINUX_PROC_NS_H */
Annotation
- Immediate include surface: `linux/nsfs.h`, `uapi/linux/nsfs.h`.
- Detected declarations: `struct pid_namespace`, `struct nsset`, `struct path`, `struct task_struct`, `struct inode`, `struct proc_ns_operations`, `function proc_alloc_inum`, `function proc_free_inum`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.