job control: introduce JOBCTL_TRAP_STOP and use it for group stop trap
[deliverable/linux.git] / include / linux / sched.h
index 5157bd9eee37f79d19a67daa3cb3ff99ef600f59..8bd84b83a35b34c87a66100b8087fd0d40a1af10 100644 (file)
@@ -1810,17 +1810,21 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *
 #define JOBCTL_STOP_DEQUEUED_BIT 16    /* stop signal dequeued */
 #define JOBCTL_STOP_PENDING_BIT        17      /* task should stop for group stop */
 #define JOBCTL_STOP_CONSUME_BIT        18      /* consume group stop count */
+#define JOBCTL_TRAP_STOP_BIT   19      /* trap for STOP */
 #define JOBCTL_TRAPPING_BIT    21      /* switching to TRACED */
 
 #define JOBCTL_STOP_DEQUEUED   (1 << JOBCTL_STOP_DEQUEUED_BIT)
 #define JOBCTL_STOP_PENDING    (1 << JOBCTL_STOP_PENDING_BIT)
 #define JOBCTL_STOP_CONSUME    (1 << JOBCTL_STOP_CONSUME_BIT)
+#define JOBCTL_TRAP_STOP       (1 << JOBCTL_TRAP_STOP_BIT)
 #define JOBCTL_TRAPPING                (1 << JOBCTL_TRAPPING_BIT)
 
-#define JOBCTL_PENDING_MASK    JOBCTL_STOP_PENDING
+#define JOBCTL_TRAP_MASK       JOBCTL_TRAP_STOP
+#define JOBCTL_PENDING_MASK    (JOBCTL_STOP_PENDING | JOBCTL_TRAP_MASK)
 
 extern bool task_set_jobctl_pending(struct task_struct *task,
                                    unsigned int mask);
+extern void task_clear_jobctl_trapping(struct task_struct *task);
 extern void task_clear_jobctl_pending(struct task_struct *task,
                                      unsigned int mask);
 
This page took 0.024676 seconds and 5 git commands to generate.