user namespace: add the framework
[linux-2.6.git] / include / linux / taskstats_kern.h
1 /* taskstats_kern.h - kernel header for per-task statistics interface
2  *
3  * Copyright (C) Shailabh Nagar, IBM Corp. 2006
4  *           (C) Balbir Singh,   IBM Corp. 2006
5  */
6
7 #ifndef _LINUX_TASKSTATS_KERN_H
8 #define _LINUX_TASKSTATS_KERN_H
9
10 #include <linux/taskstats.h>
11 #include <linux/sched.h>
12 #include <net/genetlink.h>
13
14 #ifdef CONFIG_TASKSTATS
15 extern struct kmem_cache *taskstats_cache;
16 extern struct mutex taskstats_exit_mutex;
17
18 static inline void taskstats_tgid_init(struct signal_struct *sig)
19 {
20         sig->stats = NULL;
21 }
22
23 static inline void taskstats_tgid_free(struct signal_struct *sig)
24 {
25         if (sig->stats)
26                 kmem_cache_free(taskstats_cache, sig->stats);
27 }
28
29 extern void taskstats_exit(struct task_struct *, int group_dead);
30 extern void taskstats_init_early(void);
31 #else
32 static inline void taskstats_exit(struct task_struct *tsk, int group_dead)
33 {}
34 static inline void taskstats_tgid_init(struct signal_struct *sig)
35 {}
36 static inline void taskstats_tgid_free(struct signal_struct *sig)
37 {}
38 static inline void taskstats_init_early(void)
39 {}
40 #endif /* CONFIG_TASKSTATS */
41
42 #endif
43