blob: fd6855548d0c7f3cb66e62173a65a2ae8e6d4ade [file] [log] [blame]
Ingo Molnar4eb5aaa2017-02-08 18:51:29 +01001#ifndef _LINUX_SCHED_AUTOGROUP_H
2#define _LINUX_SCHED_AUTOGROUP_H
3
4#include <linux/sched.h>
5
Ingo Molnarde8f1c72017-02-01 18:41:24 +01006struct signal_struct;
Ingo Molnar70806b22017-02-03 23:15:21 +01007struct task_group;
Ingo Molnarde8f1c72017-02-01 18:41:24 +01008struct seq_file;
9
10#ifdef CONFIG_SCHED_AUTOGROUP
11extern void sched_autogroup_create_attach(struct task_struct *p);
12extern void sched_autogroup_detach(struct task_struct *p);
13extern void sched_autogroup_fork(struct signal_struct *sig);
14extern void sched_autogroup_exit(struct signal_struct *sig);
15extern void sched_autogroup_exit_task(struct task_struct *p);
16#ifdef CONFIG_PROC_FS
17extern void proc_sched_autogroup_show_task(struct task_struct *p, struct seq_file *m);
18extern int proc_sched_autogroup_set_nice(struct task_struct *p, int nice);
19#endif
20#else
21static inline void sched_autogroup_create_attach(struct task_struct *p) { }
22static inline void sched_autogroup_detach(struct task_struct *p) { }
23static inline void sched_autogroup_fork(struct signal_struct *sig) { }
24static inline void sched_autogroup_exit(struct signal_struct *sig) { }
25static inline void sched_autogroup_exit_task(struct task_struct *p) { }
26#endif
27
Ingo Molnar70806b22017-02-03 23:15:21 +010028#ifdef CONFIG_CGROUP_SCHED
29extern struct task_group root_task_group;
30#endif /* CONFIG_CGROUP_SCHED */
31
Ingo Molnar4eb5aaa2017-02-08 18:51:29 +010032#endif /* _LINUX_SCHED_AUTOGROUP_H */