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