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