blob: 55cd496df8849dbcd7519675e77bd7758f01daba [file] [log] [blame]
Ingo Molnar4eb5aaa2017-02-08 18:51:29 +01001#ifndef _LINUX_SCHED_AUTOGROUP_H
2#define _LINUX_SCHED_AUTOGROUP_H
3
Ingo Molnarde8f1c72017-02-01 18:41:24 +01004struct signal_struct;
Ingo Molnar5fd73152017-02-08 18:51:54 +01005struct task_struct;
Ingo Molnar70806b22017-02-03 23:15:21 +01006struct task_group;
Ingo Molnarde8f1c72017-02-01 18:41:24 +01007struct seq_file;
8
9#ifdef CONFIG_SCHED_AUTOGROUP
10extern void sched_autogroup_create_attach(struct task_struct *p);
11extern void sched_autogroup_detach(struct task_struct *p);
12extern void sched_autogroup_fork(struct signal_struct *sig);
13extern void sched_autogroup_exit(struct signal_struct *sig);
14extern void sched_autogroup_exit_task(struct task_struct *p);
15#ifdef CONFIG_PROC_FS
16extern void proc_sched_autogroup_show_task(struct task_struct *p, struct seq_file *m);
17extern int proc_sched_autogroup_set_nice(struct task_struct *p, int nice);
18#endif
19#else
20static inline void sched_autogroup_create_attach(struct task_struct *p) { }
21static inline void sched_autogroup_detach(struct task_struct *p) { }
22static inline void sched_autogroup_fork(struct signal_struct *sig) { }
23static inline void sched_autogroup_exit(struct signal_struct *sig) { }
24static inline void sched_autogroup_exit_task(struct task_struct *p) { }
25#endif
26
Ingo Molnar70806b22017-02-03 23:15:21 +010027#ifdef CONFIG_CGROUP_SCHED
28extern struct task_group root_task_group;
29#endif /* CONFIG_CGROUP_SCHED */
30
Ingo Molnar4eb5aaa2017-02-08 18:51:29 +010031#endif /* _LINUX_SCHED_AUTOGROUP_H */