blob: 9062772b4a4b7d442244e6355a0748a1fc6c3e03 [file] [log] [blame]
Rich Felker0b44a032011-02-12 00:22:29 -05001#ifndef _SCHED_H
2#define _SCHED_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
Rich Felkerc1a96582012-09-07 23:13:55 -04007#include <features.h>
8
Rich Felker0b44a032011-02-12 00:22:29 -05009#define __NEED_struct_timespec
10#define __NEED_pid_t
11#define __NEED_time_t
12
13#include <bits/alltypes.h>
14
15struct sched_param {
16 int sched_priority;
17 int sched_ss_low_priority;
18 struct timespec sched_ss_repl_period;
19 struct timespec sched_ss_init_budget;
20 int sched_ss_max_repl;
21};
22
23int sched_get_priority_max(int);
24int sched_get_priority_min(int);
25int sched_getparam(pid_t, struct sched_param *);
26int sched_getscheduler(pid_t);
27int sched_rr_get_interval(pid_t, struct timespec *);
28int sched_setparam(pid_t, const struct sched_param *);
29int sched_setscheduler(pid_t, int, const struct sched_param *);
30int sched_yield(void);
31
32#define SCHED_OTHER 0
33#define SCHED_FIFO 1
34#define SCHED_RR 2
35
Rich Felker3f72cda2011-09-18 10:14:37 -040036#ifdef _GNU_SOURCE
37#define CSIGNAL 0x000000ff
38#define CLONE_VM 0x00000100
39#define CLONE_FS 0x00000200
40#define CLONE_FILES 0x00000400
41#define CLONE_SIGHAND 0x00000800
42#define CLONE_PTRACE 0x00002000
43#define CLONE_VFORK 0x00004000
44#define CLONE_PARENT 0x00008000
45#define CLONE_THREAD 0x00010000
46#define CLONE_NEWNS 0x00020000
47#define CLONE_SYSVSEM 0x00040000
48#define CLONE_SETTLS 0x00080000
49#define CLONE_PARENT_SETTID 0x00100000
50#define CLONE_CHILD_CLEARTID 0x00200000
51#define CLONE_DETACHED 0x00400000
52#define CLONE_UNTRACED 0x00800000
53#define CLONE_CHILD_SETTID 0x01000000
54#define CLONE_NEWUTS 0x04000000
55#define CLONE_NEWIPC 0x08000000
56#define CLONE_NEWUSER 0x10000000
57#define CLONE_NEWPID 0x20000000
58#define CLONE_NEWNET 0x40000000
59#define CLONE_IO 0x80000000
60int clone (int (*)(void *), void *, int, void *, ...);
Rich Felker50da5c22012-04-29 19:54:03 -040061int unshare(int);
Rich Felker3f72cda2011-09-18 10:14:37 -040062#endif
63
Rich Felker0b44a032011-02-12 00:22:29 -050064#ifdef __cplusplus
65}
66#endif
67#endif