1 /* taskstats_kern.h - kernel header for per-task statistics interface
3 * Copyright (C) Shailabh Nagar, IBM Corp. 2006
4 * (C) Balbir Singh, IBM Corp. 2006
7 #ifndef _LINUX_TASKSTATS_KERN_H
8 #define _LINUX_TASKSTATS_KERN_H
10 #include <linux/taskstats.h>
11 #include <linux/sched.h>
14 TASKSTATS_MSG_UNICAST, /* send data only to requester */
15 TASKSTATS_MSG_MULTICAST, /* send data to a group */
18 #ifdef CONFIG_TASKSTATS
19 extern kmem_cache_t *taskstats_cache;
20 extern struct mutex taskstats_exit_mutex;
22 static inline void taskstats_exit_alloc(struct taskstats **ptidstats,
23 struct taskstats **ptgidstats)
25 *ptidstats = kmem_cache_zalloc(taskstats_cache, SLAB_KERNEL);
26 *ptgidstats = kmem_cache_zalloc(taskstats_cache, SLAB_KERNEL);
29 static inline void taskstats_exit_free(struct taskstats *tidstats,
30 struct taskstats *tgidstats)
33 kmem_cache_free(taskstats_cache, tidstats);
35 kmem_cache_free(taskstats_cache, tgidstats);
38 extern void taskstats_exit_send(struct task_struct *, struct taskstats *,
40 extern void taskstats_init_early(void);
43 static inline void taskstats_exit_alloc(struct taskstats **ptidstats,
44 struct taskstats **ptgidstats)
46 static inline void taskstats_exit_free(struct taskstats *ptidstats,
47 struct taskstats *ptgidstats)
49 static inline void taskstats_exit_send(struct task_struct *tsk,
50 struct taskstats *tidstats,
51 struct taskstats *tgidstats)
53 static inline void taskstats_init_early(void)
55 #endif /* CONFIG_TASKSTATS */