#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; }; 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.64% | 10 | 27.03% |
Pavel Emelyanov | 71 | 17.23% | 8 | 21.62% |
Sukadev Bhattiprolu | 70 | 16.99% | 5 | 13.51% |
Cédric Le Goater | 46 | 11.17% | 1 | 2.70% |
Daniel Lezcano | 35 | 8.50% | 1 | 2.70% |
Al Viro | 17 | 4.13% | 4 | 10.81% |
Lafcadio Wluiki | 16 | 3.88% | 1 | 2.70% |
Adrian Bunk | 12 | 2.91% | 1 | 2.70% |
Raphael S. Carvalho | 9 | 2.18% | 1 | 2.70% |
Vasiliy Kulikov | 5 | 1.21% | 1 | 2.70% |
Badari Pulavarty | 5 | 1.21% | 1 | 2.70% |
Paul Gortmaker | 3 | 0.73% | 1 | 2.70% |
Kent Overstreet | 3 | 0.73% | 1 | 2.70% |
Cyrill V. Gorcunov | 2 | 0.49% | 1 | 2.70% |
Total | 412 | 100.00% | 37 | 100.00% |