Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
pid_namespace.h
Go to the documentation of this file.
1
#ifndef _LINUX_PID_NS_H
2
#define _LINUX_PID_NS_H
3
4
#include <linux/sched.h>
5
#include <
linux/bug.h
>
6
#include <
linux/mm.h
>
7
#include <
linux/threads.h
>
8
#include <
linux/nsproxy.h
>
9
#include <
linux/kref.h
>
10
11
struct
pidmap
{
12
atomic_t
nr_free
;
13
void
*
page
;
14
};
15
16
#define PIDMAP_ENTRIES ((PID_MAX_LIMIT + 8*PAGE_SIZE - 1)/PAGE_SIZE/8)
17
18
struct
bsd_acct_struct
;
19
20
struct
pid_namespace
{
21
struct
kref
kref
;
22
struct
pidmap
pidmap
[
PIDMAP_ENTRIES
];
23
int
last_pid
;
24
struct
task_struct
*
child_reaper
;
25
struct
kmem_cache
*
pid_cachep
;
26
unsigned
int
level
;
27
struct
pid_namespace
*
parent
;
28
#ifdef CONFIG_PROC_FS
29
struct
vfsmount
*proc_mnt;
30
#endif
31
#ifdef CONFIG_BSD_PROCESS_ACCT
32
struct
bsd_acct_struct
*bacct;
33
#endif
34
kgid_t
pid_gid
;
35
int
hide_pid
;
36
int
reboot
;
/* group exit code if this pidns was rebooted */
37
};
38
39
extern
struct
pid_namespace
init_pid_ns
;
40
41
#ifdef CONFIG_PID_NS
42
static
inline
struct
pid_namespace
*get_pid_ns(
struct
pid_namespace
*
ns
)
43
{
44
if
(ns != &
init_pid_ns
)
45
kref_get(&ns->
kref
);
46
return
ns
;
47
}
48
49
extern
struct
pid_namespace
*
copy_pid_ns
(
unsigned
long
flags
,
struct
pid_namespace
*ns);
50
extern
void
zap_pid_ns_processes
(
struct
pid_namespace
*pid_ns);
51
extern
int
reboot_pid_ns
(
struct
pid_namespace
*pid_ns,
int
cmd
);
52
extern
void
put_pid_ns
(
struct
pid_namespace
*ns);
53
54
#else
/* !CONFIG_PID_NS */
55
#include <
linux/err.h
>
56
57
static
inline
struct
pid_namespace
*get_pid_ns(
struct
pid_namespace
*ns)
58
{
59
return
ns
;
60
}
61
62
static
inline
struct
pid_namespace
*
63
copy_pid_ns
(
unsigned
long
flags
,
struct
pid_namespace
*ns)
64
{
65
if
(flags &
CLONE_NEWPID
)
66
ns = ERR_PTR(-
EINVAL
);
67
return
ns
;
68
}
69
70
static
inline
void
put_pid_ns
(
struct
pid_namespace
*ns)
71
{
72
}
73
74
static
inline
void
zap_pid_ns_processes
(
struct
pid_namespace
*ns)
75
{
76
BUG
();
77
}
78
79
static
inline
int
reboot_pid_ns
(
struct
pid_namespace
*pid_ns,
int
cmd
)
80
{
81
return
0;
82
}
83
#endif
/* CONFIG_PID_NS */
84
85
extern
struct
pid_namespace
*
task_active_pid_ns
(
struct
task_struct
*tsk);
86
void
pidhash_init
(
void
);
87
void
pidmap_init
(
void
);
88
89
#endif
/* _LINUX_PID_NS_H */
Generated on Thu Jan 10 2013 14:52:18 for Linux Kernel by
1.8.2