/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 
 | 
#ifndef _UAPI_LINUX_SCHED_H 
 | 
#define _UAPI_LINUX_SCHED_H 
 | 
  
 | 
/* 
 | 
 * cloning flags: 
 | 
 */ 
 | 
#define CSIGNAL        0x000000ff    /* signal mask to be sent at exit */ 
 | 
#define CLONE_VM    0x00000100    /* set if VM shared between processes */ 
 | 
#define CLONE_FS    0x00000200    /* set if fs info shared between processes */ 
 | 
#define CLONE_FILES    0x00000400    /* set if open files shared between processes */ 
 | 
#define CLONE_SIGHAND    0x00000800    /* set if signal handlers and blocked signals shared */ 
 | 
#define CLONE_PIDFD    0x00001000    /* set if a pidfd should be placed in parent */ 
 | 
#define CLONE_PTRACE    0x00002000    /* set if we want to let tracing continue on the child too */ 
 | 
#define CLONE_VFORK    0x00004000    /* set if the parent wants the child to wake it up on mm_release */ 
 | 
#define CLONE_PARENT    0x00008000    /* set if we want to have the same parent as the cloner */ 
 | 
#define CLONE_THREAD    0x00010000    /* Same thread group? */ 
 | 
#define CLONE_NEWNS    0x00020000    /* New mount namespace group */ 
 | 
#define CLONE_SYSVSEM    0x00040000    /* share system V SEM_UNDO semantics */ 
 | 
#define CLONE_SETTLS    0x00080000    /* create a new TLS for the child */ 
 | 
#define CLONE_PARENT_SETTID    0x00100000    /* set the TID in the parent */ 
 | 
#define CLONE_CHILD_CLEARTID    0x00200000    /* clear the TID in the child */ 
 | 
#define CLONE_DETACHED        0x00400000    /* Unused, ignored */ 
 | 
#define CLONE_UNTRACED        0x00800000    /* set if the tracing process can't force CLONE_PTRACE on this clone */ 
 | 
#define CLONE_CHILD_SETTID    0x01000000    /* set the TID in the child */ 
 | 
#define CLONE_NEWCGROUP        0x02000000    /* New cgroup namespace */ 
 | 
#define CLONE_NEWUTS        0x04000000    /* New utsname namespace */ 
 | 
#define CLONE_NEWIPC        0x08000000    /* New ipc namespace */ 
 | 
#define CLONE_NEWUSER        0x10000000    /* New user namespace */ 
 | 
#define CLONE_NEWPID        0x20000000    /* New pid namespace */ 
 | 
#define CLONE_NEWNET        0x40000000    /* New network namespace */ 
 | 
#define CLONE_IO        0x80000000    /* Clone io context */ 
 | 
  
 | 
/* 
 | 
 * Scheduling policies 
 | 
 */ 
 | 
#define SCHED_NORMAL        0 
 | 
#define SCHED_FIFO        1 
 | 
#define SCHED_RR        2 
 | 
#define SCHED_BATCH        3 
 | 
/* SCHED_ISO: reserved but not implemented yet */ 
 | 
#define SCHED_IDLE        5 
 | 
#define SCHED_DEADLINE        6 
 | 
  
 | 
/* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */ 
 | 
#define SCHED_RESET_ON_FORK     0x40000000 
 | 
  
 | 
/* 
 | 
 * For the sched_{set,get}attr() calls 
 | 
 */ 
 | 
#define SCHED_FLAG_RESET_ON_FORK    0x01 
 | 
#define SCHED_FLAG_RECLAIM        0x02 
 | 
#define SCHED_FLAG_DL_OVERRUN        0x04 
 | 
#define SCHED_FLAG_KEEP_POLICY        0x08 
 | 
#define SCHED_FLAG_KEEP_PARAMS        0x10 
 | 
#define SCHED_FLAG_UTIL_CLAMP_MIN    0x20 
 | 
#define SCHED_FLAG_UTIL_CLAMP_MAX    0x40 
 | 
  
 | 
#define SCHED_FLAG_KEEP_ALL    (SCHED_FLAG_KEEP_POLICY | \ 
 | 
                 SCHED_FLAG_KEEP_PARAMS) 
 | 
  
 | 
#define SCHED_FLAG_UTIL_CLAMP    (SCHED_FLAG_UTIL_CLAMP_MIN | \ 
 | 
                 SCHED_FLAG_UTIL_CLAMP_MAX) 
 | 
  
 | 
#define SCHED_FLAG_ALL    (SCHED_FLAG_RESET_ON_FORK    | \ 
 | 
             SCHED_FLAG_RECLAIM        | \ 
 | 
             SCHED_FLAG_DL_OVERRUN        | \ 
 | 
             SCHED_FLAG_KEEP_ALL        | \ 
 | 
             SCHED_FLAG_UTIL_CLAMP) 
 | 
  
 | 
#endif /* _UAPI_LINUX_SCHED_H */ 
 |