#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; 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; }; 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 | |
| cedric le goater | cedric le goater | 19 | 59.38% | 1 | 33.33% |
| pavel emelianov | pavel emelianov | 13 | 40.62% | 2 | 66.67% |
| Total | 32 | 100.00% | 3 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| eric w. biederman | eric w. biederman | 17 | 100.00% | 1 | 100.00% |
| Total | 17 | 100.00% | 1 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| eric w. biederman | eric w. biederman | 40 | 100.00% | 2 | 100.00% |
| Total | 40 | 100.00% | 2 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| eric w. biederman | eric w. biederman | 11 | 100.00% | 1 | 100.00% |
| Total | 11 | 100.00% | 1 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| pavel emelianov | pavel emelianov | 15 | 100.00% | 1 | 100.00% |
| Total | 15 | 100.00% | 1 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| daniel lezcano | daniel lezcano | 18 | 100.00% | 1 | 100.00% |
| Total | 18 | 100.00% | 1 | 100.00% |
| Person | Tokens | Prop | Commits | CommitProp | |
| eric w. biederman | eric w. biederman | 118 | 29.80% | 10 | 27.78% |
| pavel emelianov | pavel emelianov | 71 | 17.93% | 8 | 22.22% |
| sukadev bhattiprolu | sukadev bhattiprolu | 70 | 17.68% | 5 | 13.89% |
| cedric le goater | cedric le goater | 46 | 11.62% | 1 | 2.78% |
| daniel lezcano | daniel lezcano | 35 | 8.84% | 1 | 2.78% |
| al viro | al viro | 17 | 4.29% | 4 | 11.11% |
| adrian bunk | adrian bunk | 12 | 3.03% | 1 | 2.78% |
| raphael s. carvalho | raphael s. carvalho | 9 | 2.27% | 1 | 2.78% |
| badari pulavarty | badari pulavarty | 5 | 1.26% | 1 | 2.78% |
| vasiliy kulikov | vasiliy kulikov | 5 | 1.26% | 1 | 2.78% |
| paul gortmaker | paul gortmaker | 3 | 0.76% | 1 | 2.78% |
| kent overstreet | kent overstreet | 3 | 0.76% | 1 | 2.78% |
| cyrill gorcunov | cyrill gorcunov | 2 | 0.51% | 1 | 2.78% |
| Total | 396 | 100.00% | 36 | 100.00% |