0001
0002 #ifndef _LINUX_SCHED_JOBCTL_H
0003 #define _LINUX_SCHED_JOBCTL_H
0004
0005 #include <linux/types.h>
0006
0007 struct task_struct;
0008
0009
0010
0011
0012 #define JOBCTL_STOP_SIGMASK 0xffff
0013
0014 #define JOBCTL_STOP_DEQUEUED_BIT 16
0015 #define JOBCTL_STOP_PENDING_BIT 17
0016 #define JOBCTL_STOP_CONSUME_BIT 18
0017 #define JOBCTL_TRAP_STOP_BIT 19
0018 #define JOBCTL_TRAP_NOTIFY_BIT 20
0019 #define JOBCTL_TRAPPING_BIT 21
0020 #define JOBCTL_LISTENING_BIT 22
0021 #define JOBCTL_TRAP_FREEZE_BIT 23
0022 #define JOBCTL_PTRACE_FROZEN_BIT 24
0023
0024 #define JOBCTL_STOPPED_BIT 26
0025 #define JOBCTL_TRACED_BIT 27
0026
0027 #define JOBCTL_STOP_DEQUEUED (1UL << JOBCTL_STOP_DEQUEUED_BIT)
0028 #define JOBCTL_STOP_PENDING (1UL << JOBCTL_STOP_PENDING_BIT)
0029 #define JOBCTL_STOP_CONSUME (1UL << JOBCTL_STOP_CONSUME_BIT)
0030 #define JOBCTL_TRAP_STOP (1UL << JOBCTL_TRAP_STOP_BIT)
0031 #define JOBCTL_TRAP_NOTIFY (1UL << JOBCTL_TRAP_NOTIFY_BIT)
0032 #define JOBCTL_TRAPPING (1UL << JOBCTL_TRAPPING_BIT)
0033 #define JOBCTL_LISTENING (1UL << JOBCTL_LISTENING_BIT)
0034 #define JOBCTL_TRAP_FREEZE (1UL << JOBCTL_TRAP_FREEZE_BIT)
0035 #define JOBCTL_PTRACE_FROZEN (1UL << JOBCTL_PTRACE_FROZEN_BIT)
0036
0037 #define JOBCTL_STOPPED (1UL << JOBCTL_STOPPED_BIT)
0038 #define JOBCTL_TRACED (1UL << JOBCTL_TRACED_BIT)
0039
0040 #define JOBCTL_TRAP_MASK (JOBCTL_TRAP_STOP | JOBCTL_TRAP_NOTIFY)
0041 #define JOBCTL_PENDING_MASK (JOBCTL_STOP_PENDING | JOBCTL_TRAP_MASK)
0042
0043 extern bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask);
0044 extern void task_clear_jobctl_trapping(struct task_struct *task);
0045 extern void task_clear_jobctl_pending(struct task_struct *task, unsigned long mask);
0046
0047 #endif