blob: 704391cc1d206e96017c2291759b71d1b4d53e37 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Ingo Molnar4eb5aaa2017-02-08 18:51:29 +01002#ifndef _LINUX_SCHED_AUTOGROUP_H
3#define _LINUX_SCHED_AUTOGROUP_H
4
Ingo Molnarde8f1c72017-02-01 18:41:24 +01005struct signal_struct;
Ingo Molnar5fd73152017-02-08 18:51:54 +01006struct task_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 */