2 * D header file for POSIX.
4 * Copyright: Copyright Sean Kelly 2005 - 2009.
5 * License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
8 * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
11 /* Copyright Sean Kelly 2005 - 2009.
12 * Distributed under the Boost Software License, Version 1.0.
13 * (See accompanying file LICENSE or copy at
14 * http://www.boost.org/LICENSE_1_0.txt)
16 module core
.sys
.posix
.sched
;
18 import core
.sys
.posix
.config
;
19 public import core
.sys
.posix
.time
;
20 public import core
.sys
.posix
.sys
.types
;
28 else version (WatchOS
)
42 int sched_priority (THR)
43 int sched_ss_low_priority (SS|TSP)
44 struct timespec sched_ss_repl_period (SS|TSP)
45 struct timespec sched_ss_init_budget (SS|TSP)
46 int sched_ss_max_repl (SS|TSP)
51 SCHED_SPORADIC (SS|TSP)
54 int sched_getparam(pid_t, sched_param*);
55 int sched_getscheduler(pid_t);
56 int sched_setparam(pid_t, const scope sched_param*);
57 int sched_setscheduler(pid_t, int, const scope sched_param*);
62 version (CRuntime_Musl
)
68 static if (muslRedirTime64
)
69 c_long
[2] __reserved2
;
71 timespec
[2] __reserved2
;
86 //SCHED_SPORADIC (SS|TSP)
89 enum SCHED_RESET_ON_FORK
= 0x40000000;
96 //SCHED_SPORADIC (SS|TSP)
101 byte[__PTHREAD_MUTEX_SIZE__
] __opaque
;
104 else version (FreeBSD
)
112 enum SCHED_OTHER
= 2;
115 else version (NetBSD
)
123 enum SCHED_OTHER
= 0;
126 else version (OpenBSD
)
134 enum SCHED_OTHER
= 2;
137 else version (DragonFlyBSD
)
145 enum SCHED_OTHER
= 2;
148 else version (Solaris
)
156 enum SCHED_OTHER
= 0;
163 enum _SCHED_NEXT
= 7;
167 static assert(false, "Unsupported platform");
170 int sched_getparam(pid_t
, sched_param
*);
171 int sched_getscheduler(pid_t
);
172 int sched_setparam(pid_t
, const scope sched_param
*);
173 int sched_setscheduler(pid_t
, int, const scope sched_param
*);
182 version (CRuntime_Glibc
)
186 else version (Darwin
)
190 else version (FreeBSD
)
194 else version (NetBSD
)
198 else version (OpenBSD
)
202 else version (DragonFlyBSD
)
206 else version (Solaris
)
210 else version (CRuntime_Bionic
)
214 else version (CRuntime_Musl
)
218 else version (CRuntime_UClibc
)
224 static assert(false, "Unsupported platform");
231 int sched_get_priority_max(int);
232 int sched_get_priority_min(int);
233 int sched_rr_get_interval(pid_t, timespec*);
236 version (CRuntime_Glibc
)
238 int sched_get_priority_max(int);
239 int sched_get_priority_min(int);
240 int sched_rr_get_interval(pid_t
, timespec
*);
242 else version (Darwin
)
244 int sched_get_priority_min(int);
245 int sched_get_priority_max(int);
246 //int sched_rr_get_interval(pid_t, timespec*); // FIXME: unavailable?
248 else version (FreeBSD
)
250 int sched_get_priority_min(int);
251 int sched_get_priority_max(int);
252 int sched_rr_get_interval(pid_t
, timespec
*);
254 else version (NetBSD
)
256 int sched_get_priority_min(int);
257 int sched_get_priority_max(int);
258 int sched_rr_get_interval(pid_t
, timespec
*);
260 else version (OpenBSD
)
262 int sched_get_priority_min(int);
263 int sched_get_priority_max(int);
264 int sched_rr_get_interval(pid_t
, timespec
*);
266 else version (DragonFlyBSD
)
268 int sched_get_priority_min(int);
269 int sched_get_priority_max(int);
270 int sched_rr_get_interval(pid_t
, timespec
*);
272 else version (Solaris
)
274 int sched_get_priority_max(int);
275 int sched_get_priority_min(int);
276 int sched_rr_get_interval(pid_t
, timespec
*);
278 else version (CRuntime_Bionic
)
280 int sched_get_priority_max(int);
281 int sched_get_priority_min(int);
282 int sched_rr_get_interval(pid_t
, timespec
*);
284 else version (CRuntime_Musl
)
286 int sched_get_priority_max(int);
287 int sched_get_priority_min(int);
288 pragma(mangle
, muslRedirTime64Mangle
!("sched_rr_get_interval", "__sched_rr_get_interval_time64"))
289 int sched_rr_get_interval(pid_t
, timespec
*);
291 else version (CRuntime_UClibc
)
293 int sched_get_priority_max(int);
294 int sched_get_priority_min(int);
295 int sched_rr_get_interval(pid_t
, timespec
*);
299 static assert(false, "Unsupported platform");