jobctl.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef _LINUX_SCHED_JOBCTL_H
  2. #define _LINUX_SCHED_JOBCTL_H
  3. #include <linux/types.h>
  4. struct task_struct;
  5. /*
  6. * task->jobctl flags
  7. */
  8. #define JOBCTL_STOP_SIGMASK 0xffff /* signr of the last group stop */
  9. #define JOBCTL_STOP_DEQUEUED_BIT 16 /* stop signal dequeued */
  10. #define JOBCTL_STOP_PENDING_BIT 17 /* task should stop for group stop */
  11. #define JOBCTL_STOP_CONSUME_BIT 18 /* consume group stop count */
  12. #define JOBCTL_TRAP_STOP_BIT 19 /* trap for STOP */
  13. #define JOBCTL_TRAP_NOTIFY_BIT 20 /* trap for NOTIFY */
  14. #define JOBCTL_TRAPPING_BIT 21 /* switching to TRACED */
  15. #define JOBCTL_LISTENING_BIT 22 /* ptracer is listening for events */
  16. #define JOBCTL_STOP_DEQUEUED (1UL << JOBCTL_STOP_DEQUEUED_BIT)
  17. #define JOBCTL_STOP_PENDING (1UL << JOBCTL_STOP_PENDING_BIT)
  18. #define JOBCTL_STOP_CONSUME (1UL << JOBCTL_STOP_CONSUME_BIT)
  19. #define JOBCTL_TRAP_STOP (1UL << JOBCTL_TRAP_STOP_BIT)
  20. #define JOBCTL_TRAP_NOTIFY (1UL << JOBCTL_TRAP_NOTIFY_BIT)
  21. #define JOBCTL_TRAPPING (1UL << JOBCTL_TRAPPING_BIT)
  22. #define JOBCTL_LISTENING (1UL << JOBCTL_LISTENING_BIT)
  23. #define JOBCTL_TRAP_MASK (JOBCTL_TRAP_STOP | JOBCTL_TRAP_NOTIFY)
  24. #define JOBCTL_PENDING_MASK (JOBCTL_STOP_PENDING | JOBCTL_TRAP_MASK)
  25. extern bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask);
  26. extern void task_clear_jobctl_trapping(struct task_struct *task);
  27. extern void task_clear_jobctl_pending(struct task_struct *task, unsigned long mask);
  28. #endif /* _LINUX_SCHED_JOBCTL_H */