/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _LINUX_PID_NS_H #define _LINUX_PID_NS_H #include <linux/sched.h> #include <linux/bug.h> #include <linux/mm.h> #include <linux/workqueue.h> #include <linux/threads.h> #include <linux/nsproxy.h> #include <linux/kref.h> #include <linux/ns_common.h> struct pidmap { atomic_t nr_free; void *page; }; #define BITS_PER_PAGE (PAGE_SIZE * 8) #define BITS_PER_PAGE_MASK (BITS_PER_PAGE-1) #define PIDMAP_ENTRIES ((PID_MAX_LIMIT+BITS_PER_PAGE-1)/BITS_PER_PAGE) struct fs_pin; enum { /* definitions for pid_namespace's hide_pid field */ HIDEPID_OFF = 0, HIDEPID_NO_ACCESS = 1, HIDEPID_INVISIBLE = 2, }; struct pid_namespace { struct kref kref; struct pidmap pidmap[PIDMAP_ENTRIES]; struct rcu_head rcu; int last_pid; unsigned int nr_hashed; struct task_struct *child_reaper; struct kmem_cache *pid_cachep; unsigned int level; struct pid_namespace *parent; #ifdef CONFIG_PROC_FS struct vfsmount *proc_mnt; struct dentry *proc_self; struct dentry *proc_thread_self; #endif #ifdef CONFIG_BSD_PROCESS_ACCT struct fs_pin *bacct; #endif struct user_namespace *user_ns; struct ucounts *ucounts; struct work_struct proc_work; kgid_t pid_gid; int hide_pid; int reboot; /* group exit code if this pidns was rebooted */ struct ns_common ns; } __randomize_layout; extern struct pid_namespace init_pid_ns; #define PIDNS_HASH_ADDING (1U << 31) #ifdef CONFIG_PID_NS
static inline struct pid_namespace *get_pid_ns(struct pid_namespace *ns) { if (ns != &init_pid_ns) kref_get(&ns->kref); return ns; }Contributors
Person | Tokens | Prop | Commits | CommitProp |
Cédric Le Goater | 19 | 59.38% | 1 | 33.33% |
Pavel Emelyanov | 13 | 40.62% | 2 | 66.67% |
Total | 32 | 100.00% | 3 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Eric W. Biedermann | 17 | 100.00% | 1 | 100.00% |
Total | 17 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Eric W. Biedermann | 40 | 100.00% | 2 | 100.00% |
Total | 40 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Eric W. Biedermann | 11 | 100.00% | 1 | 100.00% |
Total | 11 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Pavel Emelyanov | 15 | 100.00% | 1 | 100.00% |
Total | 15 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Daniel Lezcano | 18 | 100.00% | 1 | 100.00% |
Total | 18 | 100.00% | 1 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp |
Eric W. Biedermann | 118 | 28.50% | 10 | 25.64% |
Pavel Emelyanov | 71 | 17.15% | 8 | 20.51% |
Sukadev Bhattiprolu | 70 | 16.91% | 5 | 12.82% |
Cédric Le Goater | 46 | 11.11% | 1 | 2.56% |
Daniel Lezcano | 35 | 8.45% | 1 | 2.56% |
Al Viro | 17 | 4.11% | 4 | 10.26% |
Lafcadio Wluiki | 16 | 3.86% | 1 | 2.56% |
Adrian Bunk | 12 | 2.90% | 1 | 2.56% |
Raphael S. Carvalho | 9 | 2.17% | 1 | 2.56% |
Vasiliy Kulikov | 5 | 1.21% | 1 | 2.56% |
Badari Pulavarty | 5 | 1.21% | 1 | 2.56% |
Kent Overstreet | 3 | 0.72% | 1 | 2.56% |
Paul Gortmaker | 3 | 0.72% | 1 | 2.56% |
Cyrill V. Gorcunov | 2 | 0.48% | 1 | 2.56% |
Kees Cook | 1 | 0.24% | 1 | 2.56% |
Greg Kroah-Hartman | 1 | 0.24% | 1 | 2.56% |
Total | 414 | 100.00% | 39 | 100.00% |