1 /**
2 * D header file for POSIX.
3 *
4 * Copyright: Copyright Sean Kelly 2005 - 2009.
5 * License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
6 * Authors: Sean Kelly
7 * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8 */
9
10 /* Copyright Sean Kelly 2005 - 2009.
11 * Distributed under the Boost Software License, Version 1.0.
12 * (See accompanying file LICENSE or copy at
13 * http://www.boost.org/LICENSE_1_0.txt)
14 */
15 module core.sys.posix.unistd;
16
17 import core.sys.posix.config;
18 import core.stdc.stddef;
19 public import core.sys.posix.inttypes; // for intptr_t
20 public import core.sys.posix.sys.types; // for ssize_t, uid_t, gid_t, off_t, pid_t, useconds_t
21
22 version (OSX)
23 version = Darwin;
24 else version (iOS)
25 version = Darwin;
26 else version (TVOS)
27 version = Darwin;
28 else version (WatchOS)
29 version = Darwin;
30
31 version (Posix):
32 extern (C):
33 nothrow:
34 @nogc:
35 @system:
36
37 enum STDIN_FILENO = 0;
38 enum STDOUT_FILENO = 1;
39 enum STDERR_FILENO = 2;
40
41 extern __gshared char* optarg;
42 extern __gshared int optind;
43 extern __gshared int opterr;
44 extern __gshared int optopt;
45
46 int access(const scope char*, int);
47 uint alarm(uint) @trusted;
48 int chdir(const scope char*);
49 int chown(const scope char*, uid_t, gid_t);
50 int close(int) @trusted;
51 size_t confstr(int, char*, size_t);
52 int dup(int) @trusted;
53 int dup2(int, int) @trusted;
54 int execl(const scope char*, const scope char*, ...);
55 int execle(const scope char*, const scope char*, ...);
56 int execlp(const scope char*, const scope char*, ...);
57 int execv(const scope char*, const scope char**);
58 int execve(const scope char*, const scope char**, const scope char**);
59 int execvp(const scope char*, const scope char**);
60 void _exit(int) @trusted;
61 int fchown(int, uid_t, gid_t) @trusted;
62 pid_t fork() @trusted;
63 c_long fpathconf(int, int) @trusted;
64 //int ftruncate(int, off_t);
65 char* getcwd(char*, size_t);
66 gid_t getegid() @trusted;
67 uid_t geteuid() @trusted;
68 gid_t getgid() @trusted;
69 int getgroups(int, gid_t *);
70 int gethostname(char*, size_t);
71 char* getlogin() @trusted;
72 int getlogin_r(char*, size_t);
73 int getopt(int, const scope char**, const scope char*);
74 pid_t getpgrp() @trusted;
75 pid_t getpid() @trusted;
76 pid_t getppid() @trusted;
77 uid_t getuid() @trusted;
78 int isatty(int) @trusted;
79 int link(const scope char*, const scope char*);
80 //off_t lseek(int, off_t, int);
81 c_long pathconf(const scope char*, int);
82 int pause() @trusted;
83 int pipe(ref int[2]) @trusted;
84 ssize_t read(int, void*, size_t);
85 ssize_t readlink(const scope char*, char*, size_t);
86 int rmdir(const scope char*);
87 int setegid(gid_t) @trusted;
88 int seteuid(uid_t) @trusted;
89 int setgid(gid_t) @trusted;
90 int setgroups(size_t, const scope gid_t*) @trusted;
91 int setpgid(pid_t, pid_t) @trusted;
92 pid_t setsid() @trusted;
93 int setuid(uid_t) @trusted;
94 uint sleep(uint) @trusted;
95 int symlink(const scope char*, const scope char*);
96 c_long sysconf(int) @trusted;
97 pid_t tcgetpgrp(int) @trusted;
98 int tcsetpgrp(int, pid_t) @trusted;
99 char* ttyname(int) @trusted;
100 int ttyname_r(int, char*, size_t);
101 int unlink(const scope char*);
102 ssize_t write(int, const scope void*, size_t);
103
version(CRuntime_Glibc)104 version (CRuntime_Glibc)
105 {
106 static if ( __USE_FILE_OFFSET64 )
107 {
108 off_t lseek64(int, off_t, int) @trusted;
109 alias lseek64 lseek;
110 }
111 else
112 {
113 off_t lseek(int, off_t, int) @trusted;
114 }
115 static if ( __USE_LARGEFILE64 )
116 {
117 int ftruncate64(int, off_t) @trusted;
118 alias ftruncate64 ftruncate;
119 }
120 else
121 {
122 int ftruncate(int, off_t) @trusted;
123 }
124 }
version(FreeBSD)125 else version (FreeBSD)
126 {
127 off_t lseek(int, off_t, int) @trusted;
128 int ftruncate(int, off_t) @trusted;
129 }
version(NetBSD)130 else version (NetBSD)
131 {
132 off_t lseek(int, off_t, int) @trusted;
133 int ftruncate(int, off_t) @trusted;
134 }
version(OpenBSD)135 else version (OpenBSD)
136 {
137 off_t lseek(int, off_t, int) @trusted;
138 int ftruncate(int, off_t) @trusted;
139 }
version(DragonFlyBSD)140 else version (DragonFlyBSD)
141 {
142 off_t lseek(int, off_t, int) @trusted;
143 int ftruncate(int, off_t) @trusted;
144 }
version(Solaris)145 else version (Solaris)
146 {
147 version (D_LP64)
148 {
149 off_t lseek(int, off_t, int) @trusted;
150 alias lseek lseek64;
151
152 int ftruncate(int, off_t) @trusted;
153 alias ftruncate ftruncate64;
154 }
155 else
156 {
157 static if ( __USE_LARGEFILE64 )
158 {
159 off64_t lseek64(int, off64_t, int) @trusted;
160 alias lseek64 lseek;
161
162 int ftruncate64(int, off64_t) @trusted;
163 alias ftruncate64 ftruncate;
164 }
165 else
166 {
167 off_t lseek(int, off_t, int) @trusted;
168 int ftruncate(int, off_t) @trusted;
169 }
170 }
171 }
version(Darwin)172 else version (Darwin)
173 {
174 off_t lseek(int, off_t, int) @trusted;
175 int ftruncate(int, off_t) @trusted;
176 }
version(CRuntime_Bionic)177 else version (CRuntime_Bionic)
178 {
179 off_t lseek(int, off_t, int) @trusted;
180 int ftruncate(int, off_t) @trusted;
181 }
version(CRuntime_Musl)182 else version (CRuntime_Musl)
183 {
184 int ftruncate(int, off_t) @trusted;
185 off_t lseek(int, off_t, int) @trusted;
186 alias ftruncate ftruncate64;
187 alias lseek lseek64;
188 }
version(CRuntime_UClibc)189 else version (CRuntime_UClibc)
190 {
191 static if ( __USE_FILE_OFFSET64 )
192 {
193 off_t lseek64(int, off_t, int) @trusted;
194 alias lseek64 lseek;
195 }
196 else
197 {
198 off_t lseek(int, off_t, int) @trusted;
199 }
200 static if ( __USE_LARGEFILE64 )
201 {
202 int ftruncate64(int, off_t) @trusted;
203 alias ftruncate64 ftruncate;
204 }
205 else
206 {
207 int ftruncate(int, off_t) @trusted;
208 }
209 }
210
version(CRuntime_Glibc)211 version (CRuntime_Glibc)
212 {
213 enum F_OK = 0;
214 enum R_OK = 4;
215 enum W_OK = 2;
216 enum X_OK = 1;
217
218 enum F_ULOCK = 0;
219 enum F_LOCK = 1;
220 enum F_TLOCK = 2;
221 enum F_TEST = 3;
222
223 enum
224 {
225 _CS_PATH,
226
227 _CS_V6_WIDTH_RESTRICTED_ENVS,
228
229 _CS_GNU_LIBC_VERSION,
230 _CS_GNU_LIBPTHREAD_VERSION,
231
232 _CS_LFS_CFLAGS = 1000,
233 _CS_LFS_LDFLAGS,
234 _CS_LFS_LIBS,
235 _CS_LFS_LINTFLAGS,
236 _CS_LFS64_CFLAGS,
237 _CS_LFS64_LDFLAGS,
238 _CS_LFS64_LIBS,
239 _CS_LFS64_LINTFLAGS,
240
241 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
242 _CS_XBS5_ILP32_OFF32_LDFLAGS,
243 _CS_XBS5_ILP32_OFF32_LIBS,
244 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
245 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
246 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
247 _CS_XBS5_ILP32_OFFBIG_LIBS,
248 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
249 _CS_XBS5_LP64_OFF64_CFLAGS,
250 _CS_XBS5_LP64_OFF64_LDFLAGS,
251 _CS_XBS5_LP64_OFF64_LIBS,
252 _CS_XBS5_LP64_OFF64_LINTFLAGS,
253 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
254 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
255 _CS_XBS5_LPBIG_OFFBIG_LIBS,
256 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
257
258 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
259 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
260 _CS_POSIX_V6_ILP32_OFF32_LIBS,
261 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
262 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
263 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
264 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
265 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
266 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
267 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
268 _CS_POSIX_V6_LP64_OFF64_LIBS,
269 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
270 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
271 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
272 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
273 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
274 }
275
276 enum
277 {
278 _PC_LINK_MAX,
279 _PC_MAX_CANON,
280 _PC_MAX_INPUT,
281 _PC_NAME_MAX,
282 _PC_PATH_MAX,
283 _PC_PIPE_BUF,
284 _PC_CHOWN_RESTRICTED,
285 _PC_NO_TRUNC,
286 _PC_VDISABLE,
287 _PC_SYNC_IO,
288 _PC_ASYNC_IO,
289 _PC_PRIO_IO,
290 _PC_SOCK_MAXBUF,
291 _PC_FILESIZEBITS,
292 _PC_REC_INCR_XFER_SIZE,
293 _PC_REC_MAX_XFER_SIZE,
294 _PC_REC_MIN_XFER_SIZE,
295 _PC_REC_XFER_ALIGN,
296 _PC_ALLOC_SIZE_MIN,
297 _PC_SYMLINK_MAX,
298 _PC_2_SYMLINKS
299 }
300
301 enum
302 {
303 _SC_ARG_MAX,
304 _SC_CHILD_MAX,
305 _SC_CLK_TCK,
306 _SC_NGROUPS_MAX,
307 _SC_OPEN_MAX,
308 _SC_STREAM_MAX,
309 _SC_TZNAME_MAX,
310 _SC_JOB_CONTROL,
311 _SC_SAVED_IDS,
312 _SC_REALTIME_SIGNALS,
313 _SC_PRIORITY_SCHEDULING,
314 _SC_TIMERS,
315 _SC_ASYNCHRONOUS_IO,
316 _SC_PRIORITIZED_IO,
317 _SC_SYNCHRONIZED_IO,
318 _SC_FSYNC,
319 _SC_MAPPED_FILES,
320 _SC_MEMLOCK,
321 _SC_MEMLOCK_RANGE,
322 _SC_MEMORY_PROTECTION,
323 _SC_MESSAGE_PASSING,
324 _SC_SEMAPHORES,
325 _SC_SHARED_MEMORY_OBJECTS,
326 _SC_AIO_LISTIO_MAX,
327 _SC_AIO_MAX,
328 _SC_AIO_PRIO_DELTA_MAX,
329 _SC_DELAYTIMER_MAX,
330 _SC_MQ_OPEN_MAX,
331 _SC_MQ_PRIO_MAX,
332 _SC_VERSION,
333 _SC_PAGESIZE,
334 _SC_PAGE_SIZE = _SC_PAGESIZE,
335 _SC_RTSIG_MAX,
336 _SC_SEM_NSEMS_MAX,
337 _SC_SEM_VALUE_MAX,
338 _SC_SIGQUEUE_MAX,
339 _SC_TIMER_MAX,
340
341 _SC_BC_BASE_MAX,
342 _SC_BC_DIM_MAX,
343 _SC_BC_SCALE_MAX,
344 _SC_BC_STRING_MAX,
345 _SC_COLL_WEIGHTS_MAX,
346 _SC_EQUIV_CLASS_MAX,
347 _SC_EXPR_NEST_MAX,
348 _SC_LINE_MAX,
349 _SC_RE_DUP_MAX,
350 _SC_CHARCLASS_NAME_MAX,
351
352 _SC_2_VERSION,
353 _SC_2_C_BIND,
354 _SC_2_C_DEV,
355 _SC_2_FORT_DEV,
356 _SC_2_FORT_RUN,
357 _SC_2_SW_DEV,
358 _SC_2_LOCALEDEF,
359
360 _SC_PII,
361 _SC_PII_XTI,
362 _SC_PII_SOCKET,
363 _SC_PII_INTERNET,
364 _SC_PII_OSI,
365 _SC_POLL,
366 _SC_SELECT,
367 _SC_UIO_MAXIOV,
368 _SC_IOV_MAX = _SC_UIO_MAXIOV,
369 _SC_PII_INTERNET_STREAM,
370 _SC_PII_INTERNET_DGRAM,
371 _SC_PII_OSI_COTS,
372 _SC_PII_OSI_CLTS,
373 _SC_PII_OSI_M,
374 _SC_T_IOV_MAX,
375
376 _SC_THREADS,
377 _SC_THREAD_SAFE_FUNCTIONS,
378 _SC_GETGR_R_SIZE_MAX,
379 _SC_GETPW_R_SIZE_MAX,
380 _SC_LOGIN_NAME_MAX,
381 _SC_TTY_NAME_MAX,
382 _SC_THREAD_DESTRUCTOR_ITERATIONS,
383 _SC_THREAD_KEYS_MAX,
384 _SC_THREAD_STACK_MIN,
385 _SC_THREAD_THREADS_MAX,
386 _SC_THREAD_ATTR_STACKADDR,
387 _SC_THREAD_ATTR_STACKSIZE,
388 _SC_THREAD_PRIORITY_SCHEDULING,
389 _SC_THREAD_PRIO_INHERIT,
390 _SC_THREAD_PRIO_PROTECT,
391 _SC_THREAD_PROCESS_SHARED,
392
393 _SC_NPROCESSORS_CONF,
394 _SC_NPROCESSORS_ONLN,
395 _SC_PHYS_PAGES,
396 _SC_AVPHYS_PAGES,
397 _SC_ATEXIT_MAX,
398 _SC_PASS_MAX,
399
400 _SC_XOPEN_VERSION,
401 _SC_XOPEN_XCU_VERSION,
402 _SC_XOPEN_UNIX,
403 _SC_XOPEN_CRYPT,
404 _SC_XOPEN_ENH_I18N,
405 _SC_XOPEN_SHM,
406
407 _SC_2_CHAR_TERM,
408 _SC_2_C_VERSION,
409 _SC_2_UPE,
410
411 _SC_XOPEN_XPG2,
412 _SC_XOPEN_XPG3,
413 _SC_XOPEN_XPG4,
414
415 _SC_CHAR_BIT,
416 _SC_CHAR_MAX,
417 _SC_CHAR_MIN,
418 _SC_INT_MAX,
419 _SC_INT_MIN,
420 _SC_LONG_BIT,
421 _SC_WORD_BIT,
422 _SC_MB_LEN_MAX,
423 _SC_NZERO,
424 _SC_SSIZE_MAX,
425 _SC_SCHAR_MAX,
426 _SC_SCHAR_MIN,
427 _SC_SHRT_MAX,
428 _SC_SHRT_MIN,
429 _SC_UCHAR_MAX,
430 _SC_UINT_MAX,
431 _SC_ULONG_MAX,
432 _SC_USHRT_MAX,
433
434 _SC_NL_ARGMAX,
435 _SC_NL_LANGMAX,
436 _SC_NL_MSGMAX,
437 _SC_NL_NMAX,
438 _SC_NL_SETMAX,
439 _SC_NL_TEXTMAX,
440
441 _SC_XBS5_ILP32_OFF32,
442 _SC_XBS5_ILP32_OFFBIG,
443 _SC_XBS5_LP64_OFF64,
444 _SC_XBS5_LPBIG_OFFBIG,
445
446 _SC_XOPEN_LEGACY,
447 _SC_XOPEN_REALTIME,
448 _SC_XOPEN_REALTIME_THREADS,
449
450 _SC_ADVISORY_INFO,
451 _SC_BARRIERS,
452 _SC_BASE,
453 _SC_C_LANG_SUPPORT,
454 _SC_C_LANG_SUPPORT_R,
455 _SC_CLOCK_SELECTION,
456 _SC_CPUTIME,
457 _SC_THREAD_CPUTIME,
458 _SC_DEVICE_IO,
459 _SC_DEVICE_SPECIFIC,
460 _SC_DEVICE_SPECIFIC_R,
461 _SC_FD_MGMT,
462 _SC_FIFO,
463 _SC_PIPE,
464 _SC_FILE_ATTRIBUTES,
465 _SC_FILE_LOCKING,
466 _SC_FILE_SYSTEM,
467 _SC_MONOTONIC_CLOCK,
468 _SC_MULTI_PROCESS,
469 _SC_SINGLE_PROCESS,
470 _SC_NETWORKING,
471 _SC_READER_WRITER_LOCKS,
472 _SC_SPIN_LOCKS,
473 _SC_REGEXP,
474 _SC_REGEX_VERSION,
475 _SC_SHELL,
476 _SC_SIGNALS,
477 _SC_SPAWN,
478 _SC_SPORADIC_SERVER,
479 _SC_THREAD_SPORADIC_SERVER,
480 _SC_SYSTEM_DATABASE,
481 _SC_SYSTEM_DATABASE_R,
482 _SC_TIMEOUTS,
483 _SC_TYPED_MEMORY_OBJECTS,
484 _SC_USER_GROUPS,
485 _SC_USER_GROUPS_R,
486 _SC_2_PBS,
487 _SC_2_PBS_ACCOUNTING,
488 _SC_2_PBS_LOCATE,
489 _SC_2_PBS_MESSAGE,
490 _SC_2_PBS_TRACK,
491 _SC_SYMLOOP_MAX,
492 _SC_STREAMS,
493 _SC_2_PBS_CHECKPOINT,
494
495 _SC_V6_ILP32_OFF32,
496 _SC_V6_ILP32_OFFBIG,
497 _SC_V6_LP64_OFF64,
498 _SC_V6_LPBIG_OFFBIG,
499
500 _SC_HOST_NAME_MAX,
501 _SC_TRACE,
502 _SC_TRACE_EVENT_FILTER,
503 _SC_TRACE_INHERIT,
504 _SC_TRACE_LOG,
505
506 _SC_LEVEL1_ICACHE_SIZE,
507 _SC_LEVEL1_ICACHE_ASSOC,
508 _SC_LEVEL1_ICACHE_LINESIZE,
509 _SC_LEVEL1_DCACHE_SIZE,
510 _SC_LEVEL1_DCACHE_ASSOC,
511 _SC_LEVEL1_DCACHE_LINESIZE,
512 _SC_LEVEL2_CACHE_SIZE,
513 _SC_LEVEL2_CACHE_ASSOC,
514 _SC_LEVEL2_CACHE_LINESIZE,
515 _SC_LEVEL3_CACHE_SIZE,
516 _SC_LEVEL3_CACHE_ASSOC,
517 _SC_LEVEL3_CACHE_LINESIZE,
518 _SC_LEVEL4_CACHE_SIZE,
519 _SC_LEVEL4_CACHE_ASSOC,
520 _SC_LEVEL4_CACHE_LINESIZE,
521
522 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
523 _SC_RAW_SOCKETS
524 }
525 }
526 else version (Darwin)
527 {
528 enum F_OK = 0;
529 enum R_OK = 4;
530 enum W_OK = 2;
531 enum X_OK = 1;
532
533 enum F_ULOCK = 0;
534 enum F_LOCK = 1;
535 enum F_TLOCK = 2;
536 enum F_TEST = 3;
537
538 enum
539 {
540 _SC_ARG_MAX = 1,
541 _SC_CHILD_MAX = 2,
542 _SC_CLK_TCK = 3,
543 _SC_NGROUPS_MAX = 4,
544 _SC_OPEN_MAX = 5,
545 _SC_JOB_CONTROL = 6,
546 _SC_SAVED_IDS = 7,
547 _SC_VERSION = 8,
548 _SC_BC_BASE_MAX = 9,
549 _SC_BC_DIM_MAX = 10,
550 _SC_BC_SCALE_MAX = 11,
551 _SC_BC_STRING_MAX = 12,
552 _SC_COLL_WEIGHTS_MAX = 13,
553 _SC_EXPR_NEST_MAX = 14,
554 _SC_LINE_MAX = 15,
555 _SC_RE_DUP_MAX = 16,
556 _SC_2_VERSION = 17,
557 _SC_2_C_BIND = 18,
558 _SC_2_C_DEV = 19,
559 _SC_2_CHAR_TERM = 20,
560 _SC_2_FORT_DEV = 21,
561 _SC_2_FORT_RUN = 22,
562 _SC_2_LOCALEDEF = 23,
563 _SC_2_SW_DEV = 24,
564 _SC_2_UPE = 25,
565 _SC_STREAM_MAX = 26,
566 _SC_TZNAME_MAX = 27,
567 _SC_ASYNCHRONOUS_IO = 28,
568 _SC_PAGESIZE = 29,
569 _SC_MEMLOCK = 30,
570 _SC_MEMLOCK_RANGE = 31,
571 _SC_MEMORY_PROTECTION = 32,
572 _SC_MESSAGE_PASSING = 33,
573 _SC_PRIORITIZED_IO = 34,
574 _SC_PRIORITY_SCHEDULING = 35,
575 _SC_REALTIME_SIGNALS = 36,
576 _SC_SEMAPHORES = 37,
577 _SC_FSYNC = 38,
578 _SC_SHARED_MEMORY_OBJECTS = 39,
579 _SC_SYNCHRONIZED_IO = 40,
580 _SC_TIMERS = 41,
581 _SC_AIO_LISTIO_MAX = 42,
582 _SC_AIO_MAX = 43,
583 _SC_AIO_PRIO_DELTA_MAX = 44,
584 _SC_DELAYTIMER_MAX = 45,
585 _SC_MQ_OPEN_MAX = 46,
586 _SC_MAPPED_FILES = 47,
587 _SC_RTSIG_MAX = 48,
588 _SC_SEM_NSEMS_MAX = 49,
589 _SC_SEM_VALUE_MAX = 50,
590 _SC_SIGQUEUE_MAX = 51,
591 _SC_TIMER_MAX = 52,
592 _SC_IOV_MAX = 56,
593 _SC_NPROCESSORS_CONF = 57,
594 _SC_NPROCESSORS_ONLN = 58,
595 _SC_2_PBS = 59,
596 _SC_2_PBS_ACCOUNTING = 60,
597 _SC_2_PBS_CHECKPOINT = 61,
598 _SC_2_PBS_LOCATE = 62,
599 _SC_2_PBS_MESSAGE = 63,
600 _SC_2_PBS_TRACK = 64,
601 _SC_ADVISORY_INFO = 65,
602 _SC_BARRIERS = 66,
603 _SC_CLOCK_SELECTION = 67,
604 _SC_CPUTIME = 68,
605 _SC_FILE_LOCKING = 69,
606 _SC_GETGR_R_SIZE_MAX = 70,
607 _SC_GETPW_R_SIZE_MAX = 71,
608 _SC_HOST_NAME_MAX = 72,
609 _SC_LOGIN_NAME_MAX = 73,
610 _SC_MONOTONIC_CLOCK = 74,
611 _SC_MQ_PRIO_MAX = 75,
612 _SC_READER_WRITER_LOCKS = 76,
613 _SC_REGEXP = 77,
614 _SC_SHELL = 78,
615 _SC_SPAWN = 79,
616 _SC_SPIN_LOCKS = 80,
617 _SC_SPORADIC_SERVER = 81,
618 _SC_THREAD_ATTR_STACKADDR = 82,
619 _SC_THREAD_ATTR_STACKSIZE = 83,
620 _SC_THREAD_CPUTIME = 84,
621 _SC_THREAD_DESTRUCTOR_ITERATIONS = 85,
622 _SC_THREAD_KEYS_MAX = 86,
623 _SC_THREAD_PRIO_INHERIT = 87,
624 _SC_THREAD_PRIO_PROTECT = 88,
625 _SC_THREAD_PRIORITY_SCHEDULING = 89,
626 _SC_THREAD_PROCESS_SHARED = 90,
627 _SC_THREAD_SAFE_FUNCTIONS = 91,
628 _SC_THREAD_SPORADIC_SERVER = 92,
629 _SC_THREAD_STACK_MIN = 93,
630 _SC_THREAD_THREADS_MAX = 94,
631 _SC_TIMEOUTS = 95,
632 _SC_THREADS = 96,
633 _SC_TRACE = 97,
634 _SC_TRACE_EVENT_FILTER = 98,
635 _SC_TRACE_INHERIT = 99,
636 _SC_TRACE_LOG = 100,
637 _SC_TTY_NAME_MAX = 101,
638 _SC_TYPED_MEMORY_OBJECTS = 102,
639 _SC_V6_ILP32_OFF32 = 103,
640 _SC_V6_ILP32_OFFBIG = 104,
641 _SC_V6_LP64_OFF64 = 105,
642 _SC_V6_LPBIG_OFFBIG = 106,
643 _SC_ATEXIT_MAX = 107,
644 _SC_XOPEN_CRYPT = 108,
645 _SC_XOPEN_ENH_I18N = 109,
646 _SC_XOPEN_LEGACY = 110,
647 _SC_XOPEN_REALTIME = 111,
648 _SC_XOPEN_REALTIME_THREADS = 112,
649 _SC_XOPEN_SHM = 113,
650 _SC_XOPEN_STREAMS = 114,
651 _SC_XOPEN_UNIX = 115,
652 _SC_XOPEN_VERSION = 116,
653 _SC_IPV6 = 118,
654 _SC_RAW_SOCKETS = 119,
655 _SC_SYMLOOP_MAX = 120,
656 _SC_XOPEN_XCU_VERSION = 121,
657 _SC_XBS5_ILP32_OFF32 = 122,
658 _SC_XBS5_ILP32_OFFBIG = 123,
659 _SC_XBS5_LP64_OFF64 = 124,
660 _SC_XBS5_LPBIG_OFFBIG = 125,
661 _SC_SS_REPL_MAX = 126,
662 _SC_TRACE_EVENT_NAME_MAX = 127,
663 _SC_TRACE_NAME_MAX = 128,
664 _SC_TRACE_SYS_MAX = 129,
665 _SC_TRACE_USER_EVENT_MAX = 130,
666 _SC_PASS_MAX = 131,
667 }
668
669 enum _SC_PAGE_SIZE = _SC_PAGESIZE;
670
671 enum
672 {
673 _CS_PATH = 1,
674 _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2,
675 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3,
676 _CS_POSIX_V6_ILP32_OFF32_LIBS = 4,
677 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5,
678 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6,
679 _CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7,
680 _CS_POSIX_V6_LP64_OFF64_CFLAGS = 8,
681 _CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9,
682 _CS_POSIX_V6_LP64_OFF64_LIBS = 10,
683 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11,
684 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12,
685 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13,
686 _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14,
687
688 _CS_XBS5_ILP32_OFF32_CFLAGS = 20,
689 _CS_XBS5_ILP32_OFF32_LDFLAGS = 21,
690 _CS_XBS5_ILP32_OFF32_LIBS = 22,
691 _CS_XBS5_ILP32_OFF32_LINTFLAGS = 23,
692 _CS_XBS5_ILP32_OFFBIG_CFLAGS = 24,
693 _CS_XBS5_ILP32_OFFBIG_LDFLAGS = 25,
694 _CS_XBS5_ILP32_OFFBIG_LIBS = 26,
695 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 27,
696 _CS_XBS5_LP64_OFF64_CFLAGS = 28,
697 _CS_XBS5_LP64_OFF64_LDFLAGS = 29,
698 _CS_XBS5_LP64_OFF64_LIBS = 30,
699 _CS_XBS5_LP64_OFF64_LINTFLAGS = 31,
700 _CS_XBS5_LPBIG_OFFBIG_CFLAGS = 32,
701 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 33,
702 _CS_XBS5_LPBIG_OFFBIG_LIBS = 34,
703 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 35,
704
705 _CS_DARWIN_USER_DIR = 65536,
706 _CS_DARWIN_USER_TEMP_DIR = 65537,
707 _CS_DARWIN_USER_CACHE_DIR = 65538,
708 }
709 }
710 else version (FreeBSD)
711 {
712 enum F_OK = 0;
713 enum R_OK = 0x04;
714 enum W_OK = 0x02;
715 enum X_OK = 0x01;
716
717 enum F_ULOCK = 0;
718 enum F_LOCK = 1;
719 enum F_TLOCK = 2;
720 enum F_TEST = 3;
721
722 enum
723 {
724 _SC_ARG_MAX = 1,
725 _SC_CHILD_MAX = 2,
726 _SC_CLK_TCK = 3,
727 _SC_NGROUPS_MAX = 4,
728 _SC_OPEN_MAX = 5,
729 _SC_JOB_CONTROL = 6,
730 _SC_SAVED_IDS = 7,
731 _SC_VERSION = 8,
732 _SC_BC_BASE_MAX = 9,
733 _SC_BC_DIM_MAX = 10,
734 _SC_BC_SCALE_MAX = 11,
735 _SC_BC_STRING_MAX = 12,
736 _SC_COLL_WEIGHTS_MAX = 13,
737 _SC_EXPR_NEST_MAX = 14,
738 _SC_LINE_MAX = 15,
739 _SC_RE_DUP_MAX = 16,
740 _SC_2_VERSION = 17,
741 _SC_2_C_BIND = 18,
742 _SC_2_C_DEV = 19,
743 _SC_2_CHAR_TERM = 20,
744 _SC_2_FORT_DEV = 21,
745 _SC_2_FORT_RUN = 22,
746 _SC_2_LOCALEDEF = 23,
747 _SC_2_SW_DEV = 24,
748 _SC_2_UPE = 25,
749 _SC_STREAM_MAX = 26,
750 _SC_TZNAME_MAX = 27,
751 _SC_ASYNCHRONOUS_IO = 28,
752 _SC_MAPPED_FILES = 29,
753 _SC_MEMLOCK = 30,
754 _SC_MEMLOCK_RANGE = 31,
755 _SC_MEMORY_PROTECTION = 32,
756 _SC_MESSAGE_PASSING = 33,
757 _SC_PRIORITIZED_IO = 34,
758 _SC_PRIORITY_SCHEDULING = 35,
759 _SC_REALTIME_SIGNALS = 36,
760 _SC_SEMAPHORES = 37,
761 _SC_FSYNC = 38,
762 _SC_SHARED_MEMORY_OBJECTS = 39,
763 _SC_SYNCHRONIZED_IO = 40,
764 _SC_TIMERS = 41,
765 _SC_AIO_LISTIO_MAX = 42,
766 _SC_AIO_MAX = 43,
767 _SC_AIO_PRIO_DELTA_MAX = 44,
768 _SC_DELAYTIMER_MAX = 45,
769 _SC_MQ_OPEN_MAX = 46,
770 _SC_PAGESIZE = 47,
771 _SC_RTSIG_MAX = 48,
772 _SC_SEM_NSEMS_MAX = 49,
773 _SC_SEM_VALUE_MAX = 50,
774 _SC_SIGQUEUE_MAX = 51,
775 _SC_TIMER_MAX = 52,
776 _SC_IOV_MAX = 56,
777 _SC_NPROCESSORS_CONF = 57,
778 _SC_NPROCESSORS_ONLN = 58,
779 _SC_2_PBS = 59,
780 _SC_2_PBS_ACCOUNTING = 60,
781 _SC_2_PBS_CHECKPOINT = 61,
782 _SC_2_PBS_LOCATE = 62,
783 _SC_2_PBS_MESSAGE = 63,
784 _SC_2_PBS_TRACK = 64,
785 _SC_ADVISORY_INFO = 65,
786 _SC_BARRIERS = 66,
787 _SC_CLOCK_SELECTION = 67,
788 _SC_CPUTIME = 68,
789 _SC_FILE_LOCKING = 69,
790 _SC_GETGR_R_SIZE_MAX = 70,
791 _SC_GETPW_R_SIZE_MAX = 71,
792 _SC_HOST_NAME_MAX = 72,
793 _SC_LOGIN_NAME_MAX = 73,
794 _SC_MONOTONIC_CLOCK = 74,
795 _SC_MQ_PRIO_MAX = 75,
796 _SC_READER_WRITER_LOCKS = 76,
797 _SC_REGEXP = 77,
798 _SC_SHELL = 78,
799 _SC_SPAWN = 79,
800 _SC_SPIN_LOCKS = 80,
801 _SC_SPORADIC_SERVER = 81,
802 _SC_THREAD_ATTR_STACKADDR = 82,
803 _SC_THREAD_ATTR_STACKSIZE = 83,
804 _SC_THREAD_CPUTIME = 84,
805 _SC_THREAD_DESTRUCTOR_ITERATIONS = 85,
806 _SC_THREAD_KEYS_MAX = 86,
807 _SC_THREAD_PRIO_INHERIT = 87,
808 _SC_THREAD_PRIO_PROTECT = 88,
809 _SC_THREAD_PRIORITY_SCHEDULING = 89,
810 _SC_THREAD_PROCESS_SHARED = 90,
811 _SC_THREAD_SAFE_FUNCTIONS = 91,
812 _SC_THREAD_SPORADIC_SERVER = 92,
813 _SC_THREAD_STACK_MIN = 93,
814 _SC_THREAD_THREADS_MAX = 94,
815 _SC_TIMEOUTS = 95,
816 _SC_THREADS = 96,
817 _SC_TRACE = 97,
818 _SC_TRACE_EVENT_FILTER = 98,
819 _SC_TRACE_INHERIT = 99,
820 _SC_TRACE_LOG = 100,
821 _SC_TTY_NAME_MAX = 101,
822 _SC_TYPED_MEMORY_OBJECTS = 102,
823 _SC_V6_ILP32_OFF32 = 103,
824 _SC_V6_ILP32_OFFBIG = 104,
825 _SC_V6_LP64_OFF64 = 105,
826 _SC_V6_LPBIG_OFFBIG = 106,
827 _SC_IPV6 = 118,
828 _SC_RAW_SOCKETS = 119,
829 _SC_SYMLOOP_MAX = 120,
830 _SC_ATEXIT_MAX = 107,
831 _SC_XOPEN_CRYPT = 108,
832 _SC_XOPEN_ENH_I18N = 109,
833 _SC_XOPEN_LEGACY = 110,
834 _SC_XOPEN_REALTIME = 111,
835 _SC_XOPEN_REALTIME_THREADS = 112,
836 _SC_XOPEN_SHM = 113,
837 _SC_XOPEN_STREAMS = 114,
838 _SC_XOPEN_UNIX = 115,
839 _SC_XOPEN_VERSION = 116,
840 _SC_XOPEN_XCU_VERSION = 117,
841 _SC_CPUSET_SIZE = 122,
842 _SC_PHYS_PAGES = 121,
843 }
844
845 enum _SC_PAGE_SIZE = _SC_PAGESIZE;
846
847 enum
848 {
849 _CS_PATH = 1,
850 _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2,
851 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3,
852 _CS_POSIX_V6_ILP32_OFF32_LIBS = 4,
853 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5,
854 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6,
855 _CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7,
856 _CS_POSIX_V6_LP64_OFF64_CFLAGS = 8,
857 _CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9,
858 _CS_POSIX_V6_LP64_OFF64_LIBS = 10,
859 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11,
860 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12,
861 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13,
862 _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14,
863 }
864 }
865 else version (NetBSD)
866 {
867 enum F_OK = 0;
868 enum R_OK = 0x04;
869 enum W_OK = 0x02;
870 enum X_OK = 0x01;
871
872 enum F_ULOCK = 0;
873 enum F_LOCK = 1;
874 enum F_TLOCK = 2;
875 enum F_TEST = 3;
876
877 enum
878 {
879 _SC_ARG_MAX = 1,
880 _SC_CHILD_MAX = 2,
881 _O_SC_CLK_TCK = 3,
882 _SC_NGROUPS_MAX = 4,
883 _SC_OPEN_MAX = 5,
884 _SC_JOB_CONTROL = 6,
885 _SC_SAVED_IDS = 7,
886 _SC_VERSION = 8,
887 _SC_BC_BASE_MAX = 9,
888 _SC_BC_DIM_MAX = 10,
889 _SC_BC_SCALE_MAX = 11,
890 _SC_BC_STRING_MAX = 12,
891 _SC_COLL_WEIGHTS_MAX = 13,
892 _SC_EXPR_NEST_MAX = 14,
893 _SC_LINE_MAX = 15,
894 _SC_RE_DUP_MAX = 16,
895 _SC_2_VERSION = 17,
896 _SC_2_C_BIND = 18,
897 _SC_2_C_DEV = 19,
898 _SC_2_CHAR_TERM = 20,
899 _SC_2_FORT_DEV = 21,
900 _SC_2_FORT_RUN = 22,
901 _SC_2_LOCALEDEF = 23,
902 _SC_2_SW_DEV = 24,
903 _SC_2_UPE = 25,
904 _SC_STREAM_MAX = 26,
905 _SC_TZNAME_MAX = 27,
906 _SC_PAGESIZE = 28,
907 _SC_FSYNC = 29,
908 _SC_XOPEN_SHM = 30,
909 _SC_SYNCHRONIZED_IO = 31,
910 _SC_IOV_MAX = 32,
911 _SC_MAPPED_FILES = 33,
912 _SC_MEMLOCK = 34,
913 _SC_MEMLOCK_RANGE = 35,
914 _SC_MEMORY_PROTECTION = 36,
915 _SC_LOGIN_NAME_MAX = 37,
916 _SC_MONOTONIC_CLOCK = 38,
917 _SC_CLK_TCK = 39,
918 _SC_ATEXIT_MAX = 40,
919 _SC_THREADS = 41,
920 _SC_SEMAPHORES = 42,
921 _SC_BARRIERS = 43,
922 _SC_TIMERS = 44,
923 _SC_SPIN_LOCKS = 45,
924 _SC_READER_WRITER_LOCKS = 46,
925 _SC_GETGR_R_SIZE_MAX = 47,
926 _SC_GETPW_R_SIZE_MAX = 48,
927 _SC_CLOCK_SELECTION = 49,
928 _SC_ASYNCHRONOUS_IO = 50,
929 _SC_AIO_LISTIO_MAX = 51,
930 _SC_AIO_MAX = 52,
931 _SC_MESSAGE_PASSING = 53,
932 _SC_MQ_OPEN_MAX = 54,
933 _SC_MQ_PRIO_MAX = 55,
934 _SC_PRIORITY_SCHEDULING = 56,
935 _SC_THREAD_DESTRUCTOR_ITERATIONS = 57,
936 _SC_THREAD_KEYS_MAX = 58,
937 _SC_THREAD_STACK_MIN = 59,
938 _SC_THREAD_THREADS_MAX = 60,
939 _SC_THREAD_ATTR_STACKADDR = 61,
940 _SC_THREAD_ATTR_STACKSIZE = 62,
941 _SC_THREAD_PRIORITY_SCHEDULING = 63,
942 _SC_THREAD_PRIO_INHERIT = 64,
943 _SC_THREAD_PRIO_PROTECT = 65,
944 _SC_THREAD_PROCESS_SHARED = 66,
945 _SC_THREAD_SAFE_FUNCTIONS = 67,
946 _SC_TTY_NAME_MAX = 68,
947 _SC_HOST_NAME_MAX = 69,
948 _SC_PASS_MAX = 70,
949 _SC_REGEXP = 71,
950 _SC_SHELL = 72,
951 _SC_SYMLOOP_MAX = 73,
952
953 /* Actually, they are not supported or implemented yet */
954 _SC_V6_ILP32_OFF32 = 74,
955 _SC_V6_ILP32_OFFBIG = 75,
956 _SC_V6_LP64_OFF64 = 76,
957 _SC_V6_LPBIG_OFFBIG = 77,
958 _SC_2_PBS = 80,
959 _SC_2_PBS_ACCOUNTING = 81,
960 _SC_2_PBS_CHECKPOINT = 82,
961 _SC_2_PBS_LOCATE = 83,
962 _SC_2_PBS_MESSAGE = 84,
963 _SC_2_PBS_TRACK = 85,
964
965 /* These are implemented */
966 _SC_SPAWN = 86,
967 _SC_SHARED_MEMORY_OBJECTS = 87,
968
969 /* Extensions found in Solaris and Linux. */
970 _SC_PHYS_PAGES = 121,
971
972 /* Commonly provided sysconf() extensions */
973 _SC_NPROCESSORS_CONF = 1001,
974 _SC_NPROCESSORS_ONLN = 1002,
975 /* Native variables */
976 _SC_SCHED_RT_TS = 2001,
977 _SC_SCHED_PRI_MIN = 2002,
978 _SC_SCHED_PRI_MAX = 2003
979
980 }
981
982 enum _SC_PAGE_SIZE = _SC_PAGESIZE;
983
984 enum
985 {
986 _CS_PATH = 1,
987 _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2,
988 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3,
989 _CS_POSIX_V6_ILP32_OFF32_LIBS = 4,
990 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5,
991 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6,
992 _CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7,
993 _CS_POSIX_V6_LP64_OFF64_CFLAGS = 8,
994 _CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9,
995 _CS_POSIX_V6_LP64_OFF64_LIBS = 10,
996 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11,
997 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12,
998 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13,
999 _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14,
1000 }
1001 }
1002 else version (OpenBSD)
1003 {
1004 enum F_OK = 0;
1005 enum R_OK = 0x04;
1006 enum W_OK = 0x02;
1007 enum X_OK = 0x01;
1008
1009 enum F_ULOCK = 0;
1010 enum F_LOCK = 1;
1011 enum F_TLOCK = 2;
1012 enum F_TEST = 3;
1013
1014 enum
1015 {
1016 _SC_ARG_MAX = 1,
1017 _SC_CHILD_MAX = 2,
1018 _O_SC_CLK_TCK = 3,
1019 _SC_NGROUPS_MAX = 4,
1020 _SC_OPEN_MAX = 5,
1021 _SC_JOB_CONTROL = 6,
1022 _SC_SAVED_IDS = 7,
1023 _SC_VERSION = 8,
1024 _SC_BC_BASE_MAX = 9,
1025 _SC_BC_DIM_MAX = 10,
1026 _SC_BC_SCALE_MAX = 11,
1027 _SC_BC_STRING_MAX = 12,
1028 _SC_COLL_WEIGHTS_MAX = 13,
1029 _SC_EXPR_NEST_MAX = 14,
1030 _SC_LINE_MAX = 15,
1031 _SC_RE_DUP_MAX = 16,
1032 _SC_2_VERSION = 17,
1033 _SC_2_C_BIND = 18,
1034 _SC_2_C_DEV = 19,
1035 _SC_2_CHAR_TERM = 20,
1036 _SC_2_FORT_DEV = 21,
1037 _SC_2_FORT_RUN = 22,
1038 _SC_2_LOCALEDEF = 23,
1039 _SC_2_SW_DEV = 24,
1040 _SC_2_UPE = 25,
1041 _SC_STREAM_MAX = 26,
1042 _SC_TZNAME_MAX = 27,
1043 _SC_PAGESIZE = 28,
1044 _SC_FSYNC = 29,
1045 _SC_XOPEN_SHM = 30,
1046 _SC_SEM_NSEMS_MAX = 31,
1047 _SC_SEM_VALUE_MAX = 32,
1048 _SC_HOST_NAME_MAX = 33,
1049 _SC_MONOTONIC_CLOCK = 34,
1050 _SC_2_PBS = 35,
1051 _SC_2_PBS_ACCOUNTING = 36,
1052 _SC_2_PBS_CHECKPOINT = 37,
1053 _SC_2_PBS_LOCATE = 38,
1054 _SC_2_PBS_MESSAGE = 39,
1055 _SC_2_PBS_TRACK = 40,
1056 _SC_ADVISORY_INFO = 41,
1057 _SC_AIO_LISTIO_MAX = 42,
1058 _SC_AIO_MAX = 43,
1059 _SC_AIO_PRIO_DELTA_MAX = 44,
1060 _SC_ASYNCHRONOUS_IO = 45,
1061 _SC_ATEXIT_MAX = 46,
1062 _SC_BARRIERS = 47,
1063 _SC_CLOCK_SELECTION = 48,
1064 _SC_CPUTIME = 49,
1065 _SC_DELAYTIMER_MAX = 50,
1066 _SC_IOV_MAX = 51,
1067 _SC_IPV6 = 52,
1068 _SC_MAPPED_FILES = 53,
1069 _SC_MEMLOCK = 54,
1070 _SC_MEMLOCK_RANGE = 55,
1071 _SC_MEMORY_PROTECTION = 56,
1072 _SC_MESSAGE_PASSING = 57,
1073 _SC_MQ_OPEN_MAX = 58,
1074 _SC_MQ_PRIO_MAX = 59,
1075 _SC_PRIORITIZED_IO = 60,
1076 _SC_PRIORITY_SCHEDULING = 61,
1077 _SC_RAW_SOCKETS = 62,
1078 _SC_READER_WRITER_LOCKS = 63,
1079 _SC_REALTIME_SIGNALS = 64,
1080 _SC_REGEXP = 65,
1081 _SC_RTSIG_MAX = 66,
1082 _SC_SEMAPHORES = 67,
1083 _SC_SHARED_MEMORY_OBJECTS = 68,
1084 _SC_SHELL = 69,
1085 _SC_SIGQUEUE_MAX = 70,
1086 _SC_SPAWN = 71,
1087 _SC_SPIN_LOCKS = 72,
1088 _SC_SPORADIC_SERVER = 73,
1089 _SC_SS_REPL_MAX = 74,
1090 _SC_SYNCHRONIZED_IO = 75,
1091 _SC_SYMLOOP_MAX = 76,
1092 _SC_THREAD_ATTR_STACKADDR = 77,
1093 _SC_THREAD_ATTR_STACKSIZE = 78,
1094 _SC_THREAD_CPUTIME = 79,
1095 _SC_THREAD_DESTRUCTOR_ITERATIONS = 80,
1096 _SC_THREAD_KEYS_MAX = 81,
1097 _SC_THREAD_PRIO_INHERIT = 82,
1098 _SC_THREAD_PRIO_PROTECT = 83,
1099 _SC_THREAD_PRIORITY_SCHEDULING = 84,
1100 _SC_THREAD_PROCESS_SHARED = 85,
1101 _SC_THREAD_ROBUST_PRIO_INHERIT = 86,
1102 _SC_THREAD_ROBUST_PRIO_PROTECT = 87,
1103 _SC_THREAD_SPORADIC_SERVER = 88,
1104 _SC_THREAD_STACK_MIN = 89,
1105 _SC_THREAD_THREADS_MAX = 90,
1106 _SC_THREADS = 91,
1107 _SC_TIMEOUTS = 92,
1108 _SC_TIMER_MAX = 93,
1109 _SC_TIMERS = 94,
1110 _SC_TRACE = 95,
1111 _SC_TRACE_EVENT_FILTER = 96,
1112 _SC_TRACE_EVENT_NAME_MAX = 97,
1113 _SC_TRACE_INHERIT = 98,
1114 _SC_TRACE_LOG = 99,
1115 _SC_GETGR_R_SIZE_MAX = 100,
1116 _SC_GETPW_R_SIZE_MAX = 101,
1117 _SC_LOGIN_NAME_MAX = 102,
1118 _SC_THREAD_SAFE_FUNCTIONS = 103,
1119 _SC_TRACE_NAME_MAX = 104,
1120 _SC_TRACE_SYS_MAX = 105,
1121 _SC_TRACE_USER_EVENT_MAX = 106,
1122 _SC_TTY_NAME_MAX = 107,
1123 _SC_TYPED_MEMORY_OBJECTS = 108,
1124 _SC_V6_ILP32_OFF32 = 109,
1125 _SC_V6_ILP32_OFFBIG = 110,
1126 _SC_V6_LP64_OFF64 = 111,
1127 _SC_V6_LPBIG_OFFBIG = 112,
1128 _SC_V7_ILP32_OFF32 = 113,
1129 _SC_V7_ILP32_OFFBIG = 114,
1130 _SC_V7_LP64_OFF64 = 115,
1131 _SC_V7_LPBIG_OFFBIG = 116,
1132 _SC_XOPEN_CRYPT = 117,
1133 _SC_XOPEN_ENH_I18N = 118,
1134 _SC_XOPEN_LEGACY = 119,
1135 _SC_XOPEN_REALTIME = 120,
1136 _SC_XOPEN_REALTIME_THREADS = 121,
1137 _SC_XOPEN_STREAMS = 122,
1138 _SC_XOPEN_UNIX = 123,
1139 _SC_XOPEN_UUCP = 124,
1140 _SC_XOPEN_VERSION = 125,
1141 _SC_PHYS_PAGES = 500,
1142 _SC_AVPHYS_PAGES = 501,
1143 _SC_NPROCESSORS_CONF = 502,
1144 _SC_NPROCESSORS_ONLN = 503,
1145 }
1146
1147 enum _SC_PAGE_SIZE = _SC_PAGESIZE;
1148
1149 enum
1150 {
1151 _CS_PATH = 1,
1152 _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2,
1153 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3,
1154 _CS_POSIX_V6_ILP32_OFF32_LIBS = 4,
1155 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5,
1156 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6,
1157 _CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7,
1158 _CS_POSIX_V6_LP64_OFF64_CFLAGS = 8,
1159 _CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9,
1160 _CS_POSIX_V6_LP64_OFF64_LIBS = 10,
1161 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11,
1162 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12,
1163 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13,
1164 _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14,
1165 _CS_V6_ENV = 15,
1166 _CS_POSIX_V7_ILP32_OFF32_CFLAGS = 16,
1167 _CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 17,
1168 _CS_POSIX_V7_ILP32_OFF32_LIBS = 18,
1169 _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 19,
1170 _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 20,
1171 _CS_POSIX_V7_ILP32_OFFBIG_LIBS = 21,
1172 _CS_POSIX_V7_LP64_OFF64_CFLAGS = 22,
1173 _CS_POSIX_V7_LP64_OFF64_LDFLAGS = 23,
1174 _CS_POSIX_V7_LP64_OFF64_LIBS = 24,
1175 _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 25,
1176 _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 26,
1177 _CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 27,
1178 _CS_POSIX_V7_THREADS_CFLAGS = 28,
1179 _CS_POSIX_V7_THREADS_LDFLAGS = 29,
1180 _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS = 30,
1181 _CS_V7_ENV = 31,
1182 }
1183 }
1184 else version (DragonFlyBSD)
1185 {
1186 enum F_OK = 0;
1187 enum R_OK = 0x04;
1188 enum W_OK = 0x02;
1189 enum X_OK = 0x01;
1190
1191 enum F_ULOCK = 0;
1192 enum F_LOCK = 1;
1193 enum F_TLOCK = 2;
1194 enum F_TEST = 3;
1195
1196 enum
1197 {
1198 _SC_ARG_MAX = 1,
1199 _SC_CHILD_MAX = 2,
1200 _SC_CLK_TCK = 3,
1201 _SC_NGROUPS_MAX = 4,
1202 _SC_OPEN_MAX = 5,
1203 _SC_JOB_CONTROL = 6,
1204 _SC_SAVED_IDS = 7,
1205 _SC_VERSION = 8,
1206 _SC_BC_BASE_MAX = 9,
1207 _SC_BC_DIM_MAX = 10,
1208 _SC_BC_SCALE_MAX = 11,
1209 _SC_BC_STRING_MAX = 12,
1210 _SC_COLL_WEIGHTS_MAX = 13,
1211 _SC_EXPR_NEST_MAX = 14,
1212 _SC_LINE_MAX = 15,
1213 _SC_RE_DUP_MAX = 16,
1214 _SC_2_VERSION = 17,
1215 _SC_2_C_BIND = 18,
1216 _SC_2_C_DEV = 19,
1217 _SC_2_CHAR_TERM = 20,
1218 _SC_2_FORT_DEV = 21,
1219 _SC_2_FORT_RUN = 22,
1220 _SC_2_LOCALEDEF = 23,
1221 _SC_2_SW_DEV = 24,
1222 _SC_2_UPE = 25,
1223 _SC_STREAM_MAX = 26,
1224 _SC_TZNAME_MAX = 27,
1225 _SC_ASYNCHRONOUS_IO = 28,
1226 _SC_MAPPED_FILES = 29,
1227 _SC_MEMLOCK = 30,
1228 _SC_MEMLOCK_RANGE = 31,
1229 _SC_MEMORY_PROTECTION = 32,
1230 _SC_MESSAGE_PASSING = 33,
1231 _SC_PRIORITIZED_IO = 34,
1232 _SC_PRIORITY_SCHEDULING = 35,
1233 _SC_REALTIME_SIGNALS = 36,
1234 _SC_SEMAPHORES = 37,
1235 _SC_FSYNC = 38,
1236 _SC_SHARED_MEMORY_OBJECTS = 39,
1237 _SC_SYNCHRONIZED_IO = 40,
1238 _SC_TIMERS = 41,
1239 _SC_AIO_LISTIO_MAX = 42,
1240 _SC_AIO_MAX = 43,
1241 _SC_AIO_PRIO_DELTA_MAX = 44,
1242 _SC_DELAYTIMER_MAX = 45,
1243 _SC_MQ_OPEN_MAX = 46,
1244 _SC_PAGESIZE = 47,
1245 _SC_RTSIG_MAX = 48,
1246 _SC_SEM_NSEMS_MAX = 49,
1247 _SC_SEM_VALUE_MAX = 50,
1248 _SC_SIGQUEUE_MAX = 51,
1249 _SC_TIMER_MAX = 52,
1250 _SC_IOV_MAX = 56,
1251 _SC_NPROCESSORS_CONF = 57,
1252 _SC_NPROCESSORS_ONLN = 58,
1253 _SC_2_PBS = 59,
1254 _SC_2_PBS_ACCOUNTING = 60,
1255 _SC_2_PBS_CHECKPOINT = 61,
1256 _SC_2_PBS_LOCATE = 62,
1257 _SC_2_PBS_MESSAGE = 63,
1258 _SC_2_PBS_TRACK = 64,
1259 _SC_ADVISORY_INFO = 65,
1260 _SC_BARRIERS = 66,
1261 _SC_CLOCK_SELECTION = 67,
1262 _SC_CPUTIME = 68,
1263 _SC_FILE_LOCKING = 69,
1264 _SC_GETGR_R_SIZE_MAX = 70,
1265 _SC_GETPW_R_SIZE_MAX = 71,
1266 _SC_HOST_NAME_MAX = 72,
1267 _SC_LOGIN_NAME_MAX = 73,
1268 _SC_MONOTONIC_CLOCK = 74,
1269 _SC_MQ_PRIO_MAX = 75,
1270 _SC_READER_WRITER_LOCKS = 76,
1271 _SC_REGEXP = 77,
1272 _SC_SHELL = 78,
1273 _SC_SPAWN = 79,
1274 _SC_SPIN_LOCKS = 80,
1275 _SC_SPORADIC_SERVER = 81,
1276 _SC_THREAD_ATTR_STACKADDR = 82,
1277 _SC_THREAD_ATTR_STACKSIZE = 83,
1278 _SC_THREAD_CPUTIME = 84,
1279 _SC_THREAD_DESTRUCTOR_ITERATIONS = 85,
1280 _SC_THREAD_KEYS_MAX = 86,
1281 _SC_THREAD_PRIO_INHERIT = 87,
1282 _SC_THREAD_PRIO_PROTECT = 88,
1283 _SC_THREAD_PRIORITY_SCHEDULING = 89,
1284 _SC_THREAD_PROCESS_SHARED = 90,
1285 _SC_THREAD_SAFE_FUNCTIONS = 91,
1286 _SC_THREAD_SPORADIC_SERVER = 92,
1287 _SC_THREAD_STACK_MIN = 93,
1288 _SC_THREAD_THREADS_MAX = 94,
1289 _SC_TIMEOUTS = 95,
1290 _SC_THREADS = 96,
1291 _SC_TRACE = 97,
1292 _SC_TRACE_EVENT_FILTER = 98,
1293 _SC_TRACE_INHERIT = 99,
1294 _SC_TRACE_LOG = 100,
1295 _SC_TTY_NAME_MAX = 101,
1296 _SC_TYPED_MEMORY_OBJECTS = 102,
1297 _SC_V6_ILP32_OFF32 = 103,
1298 _SC_V6_ILP32_OFFBIG = 104,
1299 _SC_V6_LP64_OFF64 = 105,
1300 _SC_V6_LPBIG_OFFBIG = 106,
1301 _SC_IPV6 = 118,
1302 _SC_RAW_SOCKETS = 119,
1303 _SC_SYMLOOP_MAX = 120,
1304 _SC_ATEXIT_MAX = 107,
1305 _SC_XOPEN_CRYPT = 108,
1306 _SC_XOPEN_ENH_I18N = 109,
1307 _SC_XOPEN_LEGACY = 110,
1308 _SC_XOPEN_REALTIME = 111,
1309 _SC_XOPEN_REALTIME_THREADS = 112,
1310 _SC_XOPEN_SHM = 113,
1311 _SC_XOPEN_STREAMS = 114,
1312 _SC_XOPEN_UNIX = 115,
1313 _SC_XOPEN_VERSION = 116,
1314 _SC_XOPEN_XCU_VERSION = 117,
1315 _SC_CPUSET_SIZE = 122,
1316 _SC_PHYS_PAGES = 121,
1317 }
1318
1319 enum _SC_PAGE_SIZE = _SC_PAGESIZE;
1320
1321 enum
1322 {
1323 _CS_PATH = 1,
1324 _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 2,
1325 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 3,
1326 _CS_POSIX_V6_ILP32_OFF32_LIBS = 4,
1327 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 5,
1328 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 6,
1329 _CS_POSIX_V6_ILP32_OFFBIG_LIBS = 7,
1330 _CS_POSIX_V6_LP64_OFF64_CFLAGS = 8,
1331 _CS_POSIX_V6_LP64_OFF64_LDFLAGS = 9,
1332 _CS_POSIX_V6_LP64_OFF64_LIBS = 10,
1333 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 11,
1334 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 12,
1335 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 13,
1336 _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 14,
1337 }
1338 }
1339 else version (CRuntime_Bionic)
1340 {
1341 enum F_OK = 0;
1342 enum R_OK = 4;
1343 enum W_OK = 2;
1344 enum X_OK = 1;
1345
1346 enum
1347 {
1348 _SC_ARG_MAX = 0x0000,
1349 _SC_BC_BASE_MAX = 0x0001,
1350 _SC_BC_DIM_MAX = 0x0002,
1351 _SC_BC_SCALE_MAX = 0x0003,
1352 _SC_BC_STRING_MAX = 0x0004,
1353 _SC_CHILD_MAX = 0x0005,
1354 _SC_CLK_TCK = 0x0006,
1355 _SC_COLL_WEIGHTS_MAX = 0x0007,
1356 _SC_EXPR_NEST_MAX = 0x0008,
1357 _SC_LINE_MAX = 0x0009,
1358 _SC_NGROUPS_MAX = 0x000a,
1359 _SC_OPEN_MAX = 0x000b,
1360 _SC_PASS_MAX = 0x000c,
1361 _SC_2_C_BIND = 0x000d,
1362 _SC_2_C_DEV = 0x000e,
1363 _SC_2_C_VERSION = 0x000f,
1364 _SC_2_CHAR_TERM = 0x0010,
1365 _SC_2_FORT_DEV = 0x0011,
1366 _SC_2_FORT_RUN = 0x0012,
1367 _SC_2_LOCALEDEF = 0x0013,
1368 _SC_2_SW_DEV = 0x0014,
1369 _SC_2_UPE = 0x0015,
1370 _SC_2_VERSION = 0x0016,
1371 _SC_JOB_CONTROL = 0x0017,
1372 _SC_SAVED_IDS = 0x0018,
1373 _SC_VERSION = 0x0019,
1374 _SC_RE_DUP_MAX = 0x001a,
1375 _SC_STREAM_MAX = 0x001b,
1376 _SC_TZNAME_MAX = 0x001c,
1377 _SC_XOPEN_CRYPT = 0x001d,
1378 _SC_XOPEN_ENH_I18N = 0x001e,
1379 _SC_XOPEN_SHM = 0x001f,
1380 _SC_XOPEN_VERSION = 0x0020,
1381 _SC_XOPEN_XCU_VERSION = 0x0021,
1382 _SC_XOPEN_REALTIME = 0x0022,
1383 _SC_XOPEN_REALTIME_THREADS = 0x0023,
1384 _SC_XOPEN_LEGACY = 0x0024,
1385 _SC_ATEXIT_MAX = 0x0025,
1386 _SC_IOV_MAX = 0x0026,
1387 _SC_UIO_MAXIOV = _SC_IOV_MAX,
1388 _SC_PAGESIZE = 0x0027,
1389 _SC_PAGE_SIZE = 0x0028,
1390 _SC_XOPEN_UNIX = 0x0029,
1391 _SC_XBS5_ILP32_OFF32 = 0x002a,
1392 _SC_XBS5_ILP32_OFFBIG = 0x002b,
1393 _SC_XBS5_LP64_OFF64 = 0x002c,
1394 _SC_XBS5_LPBIG_OFFBIG = 0x002d,
1395 _SC_AIO_LISTIO_MAX = 0x002e,
1396 _SC_AIO_MAX = 0x002f,
1397 _SC_AIO_PRIO_DELTA_MAX = 0x0030,
1398 _SC_DELAYTIMER_MAX = 0x0031,
1399 _SC_MQ_OPEN_MAX = 0x0032,
1400 _SC_MQ_PRIO_MAX = 0x0033,
1401 _SC_RTSIG_MAX = 0x0034,
1402 _SC_SEM_NSEMS_MAX = 0x0035,
1403 _SC_SEM_VALUE_MAX = 0x0036,
1404 _SC_SIGQUEUE_MAX = 0x0037,
1405 _SC_TIMER_MAX = 0x0038,
1406 _SC_ASYNCHRONOUS_IO = 0x0039,
1407 _SC_FSYNC = 0x003a,
1408 _SC_MAPPED_FILES = 0x003b,
1409 _SC_MEMLOCK = 0x003c,
1410 _SC_MEMLOCK_RANGE = 0x003d,
1411 _SC_MEMORY_PROTECTION = 0x003e,
1412 _SC_MESSAGE_PASSING = 0x003f,
1413 _SC_PRIORITIZED_IO = 0x0040,
1414 _SC_PRIORITY_SCHEDULING = 0x0041,
1415 _SC_REALTIME_SIGNALS = 0x0042,
1416 _SC_SEMAPHORES = 0x0043,
1417 _SC_SHARED_MEMORY_OBJECTS = 0x0044,
1418 _SC_SYNCHRONIZED_IO = 0x0045,
1419 _SC_TIMERS = 0x0046,
1420 _SC_GETGR_R_SIZE_MAX = 0x0047,
1421 _SC_GETPW_R_SIZE_MAX = 0x0048,
1422 _SC_LOGIN_NAME_MAX = 0x0049,
1423 _SC_THREAD_DESTRUCTOR_ITERATIONS = 0x004a,
1424 _SC_THREAD_KEYS_MAX = 0x004b,
1425 _SC_THREAD_STACK_MIN = 0x004c,
1426 _SC_THREAD_THREADS_MAX = 0x004d,
1427 _SC_TTY_NAME_MAX = 0x004e,
1428
1429 _SC_THREADS = 0x004f,
1430 _SC_THREAD_ATTR_STACKADDR = 0x0050,
1431 _SC_THREAD_ATTR_STACKSIZE = 0x0051,
1432 _SC_THREAD_PRIORITY_SCHEDULING = 0x0052,
1433 _SC_THREAD_PRIO_INHERIT = 0x0053,
1434 _SC_THREAD_PRIO_PROTECT = 0x0054,
1435 _SC_THREAD_SAFE_FUNCTIONS = 0x0055,
1436
1437 _SC_NPROCESSORS_CONF = 0x0060,
1438 _SC_NPROCESSORS_ONLN = 0x0061,
1439 _SC_PHYS_PAGES = 0x0062,
1440 _SC_AVPHYS_PAGES = 0x0063,
1441 _SC_MONOTONIC_CLOCK = 0x0064,
1442
1443 _SC_2_PBS = 0x0065,
1444 _SC_2_PBS_ACCOUNTING = 0x0066,
1445 _SC_2_PBS_CHECKPOINT = 0x0067,
1446 _SC_2_PBS_LOCATE = 0x0068,
1447 _SC_2_PBS_MESSAGE = 0x0069,
1448 _SC_2_PBS_TRACK = 0x006a,
1449 _SC_ADVISORY_INFO = 0x006b,
1450 _SC_BARRIERS = 0x006c,
1451 _SC_CLOCK_SELECTION = 0x006d,
1452 _SC_CPUTIME = 0x006e,
1453 _SC_HOST_NAME_MAX = 0x006f,
1454 _SC_IPV6 = 0x0070,
1455 _SC_RAW_SOCKETS = 0x0071,
1456 _SC_READER_WRITER_LOCKS = 0x0072,
1457 _SC_REGEXP = 0x0073,
1458 _SC_SHELL = 0x0074,
1459 _SC_SPAWN = 0x0075,
1460 _SC_SPIN_LOCKS = 0x0076,
1461 _SC_SPORADIC_SERVER = 0x0077,
1462 _SC_SS_REPL_MAX = 0x0078,
1463 _SC_SYMLOOP_MAX = 0x0079,
1464 _SC_THREAD_CPUTIME = 0x007a,
1465 _SC_THREAD_PROCESS_SHARED = 0x007b,
1466 _SC_THREAD_ROBUST_PRIO_INHERIT = 0x007c,
1467 _SC_THREAD_ROBUST_PRIO_PROTECT = 0x007d,
1468 _SC_THREAD_SPORADIC_SERVER = 0x007e,
1469 _SC_TIMEOUTS = 0x007f,
1470 _SC_TRACE = 0x0080,
1471 _SC_TRACE_EVENT_FILTER = 0x0081,
1472 _SC_TRACE_EVENT_NAME_MAX = 0x0082,
1473 _SC_TRACE_INHERIT = 0x0083,
1474 _SC_TRACE_LOG = 0x0084,
1475 _SC_TRACE_NAME_MAX = 0x0085,
1476 _SC_TRACE_SYS_MAX = 0x0086,
1477 _SC_TRACE_USER_EVENT_MAX = 0x0087,
1478 _SC_TYPED_MEMORY_OBJECTS = 0x0088,
1479 _SC_V7_ILP32_OFF32 = 0x0089,
1480 _SC_V7_ILP32_OFFBIG = 0x008a,
1481 _SC_V7_LP64_OFF64 = 0x008b,
1482 _SC_V7_LPBIG_OFFBIG = 0x008c,
1483 _SC_XOPEN_STREAMS = 0x008d,
1484 _SC_XOPEN_UUCP = 0x008e,
1485
1486 _SC_LEVEL1_ICACHE_SIZE = 0x008f,
1487 _SC_LEVEL1_ICACHE_ASSOC = 0x0090,
1488 _SC_LEVEL1_ICACHE_LINESIZE = 0x0091,
1489 _SC_LEVEL1_DCACHE_SIZE = 0x0092,
1490 _SC_LEVEL1_DCACHE_ASSOC = 0x0093,
1491 _SC_LEVEL1_DCACHE_LINESIZE = 0x0094,
1492 _SC_LEVEL2_CACHE_SIZE = 0x0095,
1493 _SC_LEVEL2_CACHE_ASSOC = 0x0096,
1494 _SC_LEVEL2_CACHE_LINESIZE = 0x0097,
1495 _SC_LEVEL3_CACHE_SIZE = 0x0098,
1496 _SC_LEVEL3_CACHE_ASSOC = 0x0099,
1497 _SC_LEVEL3_CACHE_LINESIZE = 0x009a,
1498 _SC_LEVEL4_CACHE_SIZE = 0x009b,
1499 _SC_LEVEL4_CACHE_ASSOC = 0x009c,
1500 _SC_LEVEL4_CACHE_LINESIZE = 0x009d,
1501 }
1502 }
1503 else version (Solaris)
1504 {
1505 enum F_OK = 0;
1506 enum R_OK = 4;
1507 enum W_OK = 2;
1508 enum X_OK = 1;
1509
1510 enum F_ULOCK = 0;
1511 enum F_LOCK = 1;
1512 enum F_TLOCK = 2;
1513 enum F_TEST = 3;
1514
1515 enum
1516 {
1517 // large file compilation environment configuration
1518 _CS_LFS_CFLAGS = 68,
1519 _CS_LFS_LDFLAGS = 69,
1520 _CS_LFS_LIBS = 70,
1521 _CS_LFS_LINTFLAGS = 71,
1522 // transitional large file interface configuration
1523 _CS_LFS64_CFLAGS = 72,
1524 _CS_LFS64_LDFLAGS = 73,
1525 _CS_LFS64_LIBS = 74,
1526 _CS_LFS64_LINTFLAGS = 75,
1527
1528 // UNIX 98
1529 _CS_XBS5_ILP32_OFF32_CFLAGS = 700,
1530 _CS_XBS5_ILP32_OFF32_LDFLAGS = 701,
1531 _CS_XBS5_ILP32_OFF32_LIBS = 702,
1532 _CS_XBS5_ILP32_OFF32_LINTFLAGS = 703,
1533 _CS_XBS5_ILP32_OFFBIG_CFLAGS = 705,
1534 _CS_XBS5_ILP32_OFFBIG_LDFLAGS = 706,
1535 _CS_XBS5_ILP32_OFFBIG_LIBS = 707,
1536 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 708,
1537 _CS_XBS5_LP64_OFF64_CFLAGS = 709,
1538 _CS_XBS5_LP64_OFF64_LDFLAGS = 710,
1539 _CS_XBS5_LP64_OFF64_LIBS = 711,
1540 _CS_XBS5_LP64_OFF64_LINTFLAGS = 712,
1541 _CS_XBS5_LPBIG_OFFBIG_CFLAGS = 713,
1542 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 714,
1543 _CS_XBS5_LPBIG_OFFBIG_LIBS = 715,
1544 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 716,
1545
1546 // UNIX 03
1547 _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 800,
1548 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 801,
1549 _CS_POSIX_V6_ILP32_OFF32_LIBS = 802,
1550 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 803,
1551 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 804,
1552 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 805,
1553 _CS_POSIX_V6_ILP32_OFFBIG_LIBS = 806,
1554 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 807,
1555 _CS_POSIX_V6_LP64_OFF64_CFLAGS = 808,
1556 _CS_POSIX_V6_LP64_OFF64_LDFLAGS = 809,
1557 _CS_POSIX_V6_LP64_OFF64_LIBS = 810,
1558 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 811,
1559 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 812,
1560 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 813,
1561 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 814,
1562 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 815,
1563 _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS = 816
1564 }
1565
1566 enum {
1567 _SC_ARG_MAX = 1,
1568 _SC_CHILD_MAX = 2,
1569 _SC_CLK_TCK = 3,
1570 _SC_NGROUPS_MAX = 4,
1571 _SC_OPEN_MAX = 5,
1572 _SC_JOB_CONTROL = 6,
1573 _SC_SAVED_IDS = 7,
1574 _SC_VERSION = 8,
1575
1576 _SC_PASS_MAX = 9,
1577 _SC_LOGNAME_MAX = 10,
1578 _SC_PAGESIZE = 11,
1579 _SC_XOPEN_VERSION = 12,
1580 // 13 reserved for SVr4-ES/MP _SC_NACLS_MAX
1581 _SC_NPROCESSORS_CONF = 14,
1582 _SC_NPROCESSORS_ONLN = 15,
1583 _SC_STREAM_MAX = 16,
1584 _SC_TZNAME_MAX = 17,
1585
1586 _SC_AIO_LISTIO_MAX = 18,
1587 _SC_AIO_MAX = 19,
1588 _SC_AIO_PRIO_DELTA_MAX = 20,
1589 _SC_ASYNCHRONOUS_IO = 21,
1590 _SC_DELAYTIMER_MAX = 22,
1591 _SC_FSYNC = 23,
1592 _SC_MAPPED_FILES = 24,
1593 _SC_MEMLOCK = 25,
1594 _SC_MEMLOCK_RANGE = 26,
1595 _SC_MEMORY_PROTECTION = 27,
1596 _SC_MESSAGE_PASSING = 28,
1597 _SC_MQ_OPEN_MAX = 29,
1598 _SC_MQ_PRIO_MAX = 30,
1599 _SC_PRIORITIZED_IO = 31,
1600 _SC_PRIORITY_SCHEDULING = 32,
1601 _SC_REALTIME_SIGNALS = 33,
1602 _SC_RTSIG_MAX = 34,
1603 _SC_SEMAPHORES = 35,
1604 _SC_SEM_NSEMS_MAX = 36,
1605 _SC_SEM_VALUE_MAX = 37,
1606 _SC_SHARED_MEMORY_OBJECTS = 38,
1607 _SC_SIGQUEUE_MAX = 39,
1608 _SC_SIGRT_MIN = 40,
1609 _SC_SIGRT_MAX = 41,
1610 _SC_SYNCHRONIZED_IO = 42,
1611 _SC_TIMERS = 43,
1612 _SC_TIMER_MAX = 44,
1613
1614 _SC_2_C_BIND = 45,
1615 _SC_2_C_DEV = 46,
1616 _SC_2_C_VERSION = 47,
1617 _SC_2_FORT_DEV = 48,
1618 _SC_2_FORT_RUN = 49,
1619 _SC_2_LOCALEDEF = 50,
1620 _SC_2_SW_DEV = 51,
1621 _SC_2_UPE = 52,
1622 _SC_2_VERSION = 53,
1623 _SC_BC_BASE_MAX = 54,
1624 _SC_BC_DIM_MAX = 55,
1625 _SC_BC_SCALE_MAX = 56,
1626 _SC_BC_STRING_MAX = 57,
1627 _SC_COLL_WEIGHTS_MAX = 58,
1628 _SC_EXPR_NEST_MAX = 59,
1629 _SC_LINE_MAX = 60,
1630 _SC_RE_DUP_MAX = 61,
1631 _SC_XOPEN_CRYPT = 62,
1632 _SC_XOPEN_ENH_I18N = 63,
1633 _SC_XOPEN_SHM = 64,
1634 _SC_2_CHAR_TERM = 66,
1635 _SC_XOPEN_XCU_VERSION = 67,
1636
1637 _SC_ATEXIT_MAX = 76,
1638 _SC_IOV_MAX = 77,
1639 _SC_XOPEN_UNIX = 78,
1640
1641 _SC_T_IOV_MAX = 79,
1642
1643 _SC_PHYS_PAGES = 500,
1644 _SC_AVPHYS_PAGES = 501,
1645
1646 _SC_COHER_BLKSZ = 503,
1647 _SC_SPLIT_CACHE = 504,
1648 _SC_ICACHE_SZ = 505,
1649 _SC_DCACHE_SZ = 506,
1650 _SC_ICACHE_LINESZ = 507,
1651 _SC_DCACHE_LINESZ = 508,
1652 _SC_ICACHE_BLKSZ = 509,
1653 _SC_DCACHE_BLKSZ = 510,
1654 _SC_DCACHE_TBLKSZ = 511,
1655 _SC_ICACHE_ASSOC = 512,
1656 _SC_DCACHE_ASSOC = 513,
1657
1658 _SC_MAXPID = 514,
1659 _SC_STACK_PROT = 515,
1660 _SC_NPROCESSORS_MAX = 516,
1661 _SC_CPUID_MAX = 517,
1662 _SC_EPHID_MAX = 518,
1663
1664 _SC_THREAD_DESTRUCTOR_ITERATIONS = 568,
1665 _SC_GETGR_R_SIZE_MAX = 569,
1666 _SC_GETPW_R_SIZE_MAX = 570,
1667 _SC_LOGIN_NAME_MAX = 571,
1668 _SC_THREAD_KEYS_MAX = 572,
1669 _SC_THREAD_STACK_MIN = 573,
1670 _SC_THREAD_THREADS_MAX = 574,
1671 _SC_TTY_NAME_MAX = 575,
1672 _SC_THREADS = 576,
1673 _SC_THREAD_ATTR_STACKADDR = 577,
1674 _SC_THREAD_ATTR_STACKSIZE = 578,
1675 _SC_THREAD_PRIORITY_SCHEDULING = 579,
1676 _SC_THREAD_PRIO_INHERIT = 580,
1677 _SC_THREAD_PRIO_PROTECT = 581,
1678 _SC_THREAD_PROCESS_SHARED = 582,
1679 _SC_THREAD_SAFE_FUNCTIONS = 583,
1680
1681 _SC_XOPEN_LEGACY = 717,
1682 _SC_XOPEN_REALTIME = 718,
1683 _SC_XOPEN_REALTIME_THREADS = 719,
1684 _SC_XBS5_ILP32_OFF32 = 720,
1685 _SC_XBS5_ILP32_OFFBIG = 721,
1686 _SC_XBS5_LP64_OFF64 = 722,
1687 _SC_XBS5_LPBIG_OFFBIG = 723,
1688
1689 _SC_2_PBS = 724,
1690 _SC_2_PBS_ACCOUNTING = 725,
1691 _SC_2_PBS_CHECKPOINT = 726,
1692 _SC_2_PBS_LOCATE = 728,
1693 _SC_2_PBS_MESSAGE = 729,
1694 _SC_2_PBS_TRACK = 730,
1695 _SC_ADVISORY_INFO = 731,
1696 _SC_BARRIERS = 732,
1697 _SC_CLOCK_SELECTION = 733,
1698 _SC_CPUTIME = 734,
1699 _SC_HOST_NAME_MAX = 735,
1700 _SC_MONOTONIC_CLOCK = 736,
1701 _SC_READER_WRITER_LOCKS = 737,
1702 _SC_REGEXP = 738,
1703 _SC_SHELL = 739,
1704 _SC_SPAWN = 740,
1705 _SC_SPIN_LOCKS = 741,
1706 _SC_SPORADIC_SERVER = 742,
1707 _SC_SS_REPL_MAX = 743,
1708 _SC_SYMLOOP_MAX = 744,
1709 _SC_THREAD_CPUTIME = 745,
1710 _SC_THREAD_SPORADIC_SERVER = 746,
1711 _SC_TIMEOUTS = 747,
1712 _SC_TRACE = 748,
1713 _SC_TRACE_EVENT_FILTER = 749,
1714 _SC_TRACE_EVENT_NAME_MAX = 750,
1715 _SC_TRACE_INHERIT = 751,
1716 _SC_TRACE_LOG = 752,
1717 _SC_TRACE_NAME_MAX = 753,
1718 _SC_TRACE_SYS_MAX = 754,
1719 _SC_TRACE_USER_EVENT_MAX = 755,
1720 _SC_TYPED_MEMORY_OBJECTS = 756,
1721 _SC_V6_ILP32_OFF32 = 757,
1722 _SC_V6_ILP32_OFFBIG = 758,
1723 _SC_V6_LP64_OFF64 = 759,
1724 _SC_V6_LPBIG_OFFBIG = 760,
1725 _SC_XOPEN_STREAMS = 761,
1726 _SC_IPV6 = 762,
1727 _SC_RAW_SOCKETS = 763,
1728 }
1729 enum _SC_PAGE_SIZE = _SC_PAGESIZE;
1730
1731 enum {
1732 _PC_LINK_MAX = 1,
1733 _PC_MAX_CANON = 2,
1734 _PC_MAX_INPUT = 3,
1735 _PC_NAME_MAX = 4,
1736 _PC_PATH_MAX = 5,
1737 _PC_PIPE_BUF = 6,
1738 _PC_NO_TRUNC = 7,
1739 _PC_VDISABLE = 8,
1740 _PC_CHOWN_RESTRICTED = 9,
1741
1742 _PC_ASYNC_IO = 10,
1743 _PC_PRIO_IO = 11,
1744 _PC_SYNC_IO = 12,
1745
1746 _PC_ALLOC_SIZE_MIN = 13,
1747 _PC_REC_INCR_XFER_SIZE = 14,
1748 _PC_REC_MAX_XFER_SIZE = 15,
1749 _PC_REC_MIN_XFER_SIZE = 16,
1750 _PC_REC_XFER_ALIGN = 17,
1751 _PC_SYMLINK_MAX = 18,
1752 _PC_2_SYMLINKS = 19,
1753 _PC_ACL_ENABLED = 20,
1754 _PC_MIN_HOLE_SIZE = 21,
1755 _PC_CASE_BEHAVIOR = 22,
1756 _PC_SATTR_ENABLED = 23,
1757 _PC_SATTR_EXISTS = 24,
1758 _PC_ACCESS_FILTERING = 25,
1759
1760 _PC_TIMESTAMP_RESOLUTION = 26,
1761
1762 _PC_FILESIZEBITS = 67,
1763
1764 _PC_XATTR_ENABLED = 100,
1765 _PC_XATTR_EXISTS = 101
1766 }
1767
1768 enum _PC_LAST = 101;
1769 }
1770 else version (CRuntime_Musl)
1771 {
1772 enum F_OK = 0;
1773 enum R_OK = 4;
1774 enum W_OK = 2;
1775 enum X_OK = 1;
1776
1777 enum F_ULOCK = 0;
1778 enum F_LOCK = 1;
1779 enum F_TLOCK = 2;
1780 enum F_TEST = 3;
1781
1782 enum
1783 {
1784 _CS_PATH,
1785 _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS,
1786 _CS_GNU_LIBC_VERSION,
1787 _CS_GNU_LIBPTHREAD_VERSION,
1788 _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS,
1789 _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS,
1790
1791 _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116,
1792 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
1793 _CS_POSIX_V6_ILP32_OFF32_LIBS,
1794 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
1795 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
1796 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
1797 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
1798 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
1799 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
1800 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
1801 _CS_POSIX_V6_LP64_OFF64_LIBS,
1802 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
1803 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
1804 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
1805 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
1806 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
1807 _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
1808 _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
1809 _CS_POSIX_V7_ILP32_OFF32_LIBS,
1810 _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
1811 _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
1812 _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
1813 _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
1814 _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
1815 _CS_POSIX_V7_LP64_OFF64_CFLAGS,
1816 _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
1817 _CS_POSIX_V7_LP64_OFF64_LIBS,
1818 _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
1819 _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
1820 _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
1821 _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
1822 _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
1823 _CS_V6_ENV,
1824 _CS_V7_ENV
1825 }
1826
1827 enum
1828 {
1829 _PC_LINK_MAX,
1830 _PC_MAX_CANON,
1831 _PC_MAX_INPUT,
1832 _PC_NAME_MAX,
1833 _PC_PATH_MAX,
1834 _PC_PIPE_BUF,
1835 _PC_CHOWN_RESTRICTED,
1836 _PC_NO_TRUNC,
1837 _PC_VDISABLE,
1838 _PC_SYNC_IO,
1839 _PC_ASYNC_IO,
1840 _PC_PRIO_IO,
1841 _PC_SOCK_MAXBUF,
1842 _PC_FILESIZEBITS,
1843 _PC_REC_INCR_XFER_SIZE,
1844 _PC_REC_MAX_XFER_SIZE,
1845 _PC_REC_MIN_XFER_SIZE,
1846 _PC_REC_XFER_ALIGN,
1847 _PC_ALLOC_SIZE_MIN,
1848 _PC_SYMLINK_MAX,
1849 _PC_2_SYMLINKS
1850 }
1851
1852 enum
1853 {
1854 _SC_ARG_MAX,
1855 _SC_CHILD_MAX,
1856 _SC_CLK_TCK,
1857 _SC_NGROUPS_MAX,
1858 _SC_OPEN_MAX,
1859 _SC_STREAM_MAX,
1860 _SC_TZNAME_MAX,
1861 _SC_JOB_CONTROL,
1862 _SC_SAVED_IDS,
1863 _SC_REALTIME_SIGNALS,
1864 _SC_PRIORITY_SCHEDULING,
1865 _SC_TIMERS,
1866 _SC_ASYNCHRONOUS_IO,
1867 _SC_PRIORITIZED_IO,
1868 _SC_SYNCHRONIZED_IO,
1869 _SC_FSYNC,
1870 _SC_MAPPED_FILES,
1871 _SC_MEMLOCK,
1872 _SC_MEMLOCK_RANGE,
1873 _SC_MEMORY_PROTECTION,
1874 _SC_MESSAGE_PASSING,
1875 _SC_SEMAPHORES,
1876 _SC_SHARED_MEMORY_OBJECTS,
1877 _SC_AIO_LISTIO_MAX,
1878 _SC_AIO_MAX,
1879 _SC_AIO_PRIO_DELTA_MAX,
1880 _SC_DELAYTIMER_MAX,
1881 _SC_MQ_OPEN_MAX,
1882 _SC_MQ_PRIO_MAX,
1883 _SC_VERSION,
1884 _SC_PAGE_SIZE,
1885 _SC_PAGESIZE = _SC_PAGE_SIZE,
1886 _SC_RTSIG_MAX,
1887 _SC_SEM_NSEMS_MAX,
1888 _SC_SEM_VALUE_MAX,
1889 _SC_SIGQUEUE_MAX,
1890 _SC_TIMER_MAX,
1891 _SC_BC_BASE_MAX,
1892 _SC_BC_DIM_MAX,
1893 _SC_BC_SCALE_MAX,
1894 _SC_BC_STRING_MAX,
1895 _SC_COLL_WEIGHTS_MAX,
1896
1897 _SC_EXPR_NEST_MAX = 42,
1898 _SC_LINE_MAX,
1899 _SC_RE_DUP_MAX,
1900
1901 _SC_2_VERSION = 46,
1902 _SC_2_C_BIND,
1903 _SC_2_C_DEV,
1904 _SC_2_FORT_DEV,
1905 _SC_2_FORT_RUN,
1906 _SC_2_SW_DEV,
1907 _SC_2_LOCALEDEF,
1908
1909 _SC_UIO_MAXIOV = 60,
1910 _SC_IOV_MAX = _SC_UIO_MAXIOV,
1911
1912 _SC_THREADS = 67,
1913 _SC_THREAD_SAFE_FUNCTIONS,
1914 _SC_GETGR_R_SIZE_MAX,
1915 _SC_GETPW_R_SIZE_MAX,
1916 _SC_LOGIN_NAME_MAX,
1917 _SC_TTY_NAME_MAX,
1918 _SC_THREAD_DESTRUCTOR_ITERATIONS,
1919 _SC_THREAD_KEYS_MAX,
1920 _SC_THREAD_STACK_MIN,
1921 _SC_THREAD_THREADS_MAX,
1922 _SC_THREAD_ATTR_STACKADDR,
1923 _SC_THREAD_ATTR_STACKSIZE,
1924 _SC_THREAD_PRIORITY_SCHEDULING,
1925 _SC_THREAD_PRIO_INHERIT,
1926 _SC_THREAD_PRIO_PROTECT,
1927 _SC_THREAD_PROCESS_SHARED,
1928
1929 _SC_NPROCESSORS_CONF,
1930 _SC_NPROCESSORS_ONLN,
1931 _SC_PHYS_PAGES,
1932 _SC_AVPHYS_PAGES,
1933 _SC_ATEXIT_MAX,
1934 _SC_PASS_MAX,
1935
1936 _SC_XOPEN_VERSION,
1937 _SC_XOPEN_XCU_VERSION,
1938 _SC_XOPEN_UNIX,
1939 _SC_XOPEN_CRYPT,
1940 _SC_XOPEN_ENH_I18N,
1941 _SC_XOPEN_SHM,
1942
1943 _SC_2_CHAR_TERM,
1944 _SC_2_UPE = 97,
1945
1946 _SC_XOPEN_XPG2,
1947 _SC_XOPEN_XPG3,
1948 _SC_XOPEN_XPG4,
1949
1950 _SC_NZERO = 109,
1951
1952 _SC_XBS5_ILP32_OFF32 = 125,
1953 _SC_XBS5_ILP32_OFFBIG,
1954 _SC_XBS5_LP64_OFF64,
1955 _SC_XBS5_LPBIG_OFFBIG,
1956
1957 _SC_XOPEN_LEGACY,
1958 _SC_XOPEN_REALTIME,
1959 _SC_XOPEN_REALTIME_THREADS,
1960
1961 _SC_ADVISORY_INFO,
1962 _SC_BARRIERS,
1963 _SC_CLOCK_SELECTION = 137,
1964 _SC_CPUTIME,
1965 _SC_THREAD_CPUTIME,
1966 _SC_MONOTONIC_CLOCK = 149,
1967 _SC_READER_WRITER_LOCKS = 153,
1968 _SC_SPIN_LOCKS,
1969 _SC_REGEXP,
1970 _SC_SHELL = 157,
1971 _SC_SPAWN = 159,
1972 _SC_SPORADIC_SERVER,
1973 _SC_THREAD_SPORADIC_SERVER,
1974 _SC_TIMEOUTS = 164,
1975 _SC_TYPED_MEMORY_OBJECTS,
1976 _SC_2_PBS = 168,
1977 _SC_2_PBS_ACCOUNTING,
1978 _SC_2_PBS_LOCATE,
1979 _SC_2_PBS_MESSAGE,
1980 _SC_2_PBS_TRACK,
1981 _SC_SYMLOOP_MAX,
1982 _SC_STREAMS,
1983 _SC_2_PBS_CHECKPOINT,
1984
1985 _SC_V6_ILP32_OFF32,
1986 _SC_V6_ILP32_OFFBIG,
1987 _SC_V6_LP64_OFF64,
1988 _SC_V6_LPBIG_OFFBIG,
1989
1990 _SC_HOST_NAME_MAX,
1991 _SC_TRACE,
1992 _SC_TRACE_EVENT_FILTER,
1993 _SC_TRACE_INHERIT,
1994 _SC_TRACE_LOG,
1995
1996 _SC_IPV6 = 235,
1997 _SC_RAW_SOCKETS,
1998 _SC_V7_ILP32_OFF32,
1999 _SC_V7_ILP32_OFFBIG,
2000 _SC_V7_LP64_OFF64,
2001 _SC_V7_LPBIG_OFFBIG,
2002 _SC_SS_REPL_MAX,
2003 _SC_TRACE_EVENT_NAME_MAX,
2004 _SC_TRACE_NAME_MAX,
2005 _SC_TRACE_SYS_MAX,
2006 _SC_TRACE_USER_EVENT_MAX,
2007 _SC_XOPEN_STREAMS,
2008 _SC_THREAD_ROBUST_PRIO_INHERIT,
2009 _SC_THREAD_ROBUST_PRIO_PROTECT
2010 }
2011 }
2012 else version (CRuntime_UClibc)
2013 {
2014 enum F_OK = 0;
2015 enum R_OK = 4;
2016 enum W_OK = 2;
2017 enum X_OK = 1;
2018
2019 enum F_ULOCK = 0;
2020 enum F_LOCK = 1;
2021 enum F_TLOCK = 2;
2022 enum F_TEST = 3;
2023
2024 enum
2025 {
2026 _CS_PATH,
2027
2028 _CS_V6_WIDTH_RESTRICTED_ENVS,
2029
2030 _CS_GNU_LIBC_VERSION,
2031 _CS_GNU_LIBPTHREAD_VERSION,
2032
2033 _CS_LFS_CFLAGS = 1000,
2034 _CS_LFS_LDFLAGS,
2035 _CS_LFS_LIBS,
2036 _CS_LFS_LINTFLAGS,
2037 _CS_LFS64_CFLAGS,
2038 _CS_LFS64_LDFLAGS,
2039 _CS_LFS64_LIBS,
2040 _CS_LFS64_LINTFLAGS,
2041
2042 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
2043 _CS_XBS5_ILP32_OFF32_LDFLAGS,
2044 _CS_XBS5_ILP32_OFF32_LIBS,
2045 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
2046 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
2047 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
2048 _CS_XBS5_ILP32_OFFBIG_LIBS,
2049 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
2050 _CS_XBS5_LP64_OFF64_CFLAGS,
2051 _CS_XBS5_LP64_OFF64_LDFLAGS,
2052 _CS_XBS5_LP64_OFF64_LIBS,
2053 _CS_XBS5_LP64_OFF64_LINTFLAGS,
2054 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
2055 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
2056 _CS_XBS5_LPBIG_OFFBIG_LIBS,
2057 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
2058
2059 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
2060 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
2061 _CS_POSIX_V6_ILP32_OFF32_LIBS,
2062 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
2063 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
2064 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
2065 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
2066 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
2067 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
2068 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
2069 _CS_POSIX_V6_LP64_OFF64_LIBS,
2070 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
2071 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
2072 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
2073 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
2074 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
2075 }
2076
2077 enum
2078 {
2079 _PC_LINK_MAX,
2080 _PC_MAX_CANON,
2081 _PC_MAX_INPUT,
2082 _PC_NAME_MAX,
2083 _PC_PATH_MAX,
2084 _PC_PIPE_BUF,
2085 _PC_CHOWN_RESTRICTED,
2086 _PC_NO_TRUNC,
2087 _PC_VDISABLE,
2088 _PC_SYNC_IO,
2089 _PC_ASYNC_IO,
2090 _PC_PRIO_IO,
2091 _PC_SOCK_MAXBUF,
2092 _PC_FILESIZEBITS,
2093 _PC_REC_INCR_XFER_SIZE,
2094 _PC_REC_MAX_XFER_SIZE,
2095 _PC_REC_MIN_XFER_SIZE,
2096 _PC_REC_XFER_ALIGN,
2097 _PC_ALLOC_SIZE_MIN,
2098 _PC_SYMLINK_MAX,
2099 _PC_2_SYMLINKS
2100 }
2101
2102 enum
2103 {
2104 _SC_ARG_MAX,
2105 _SC_CHILD_MAX,
2106 _SC_CLK_TCK,
2107 _SC_NGROUPS_MAX,
2108 _SC_OPEN_MAX,
2109 _SC_STREAM_MAX,
2110 _SC_TZNAME_MAX,
2111 _SC_JOB_CONTROL,
2112 _SC_SAVED_IDS,
2113 _SC_REALTIME_SIGNALS,
2114 _SC_PRIORITY_SCHEDULING,
2115 _SC_TIMERS,
2116 _SC_ASYNCHRONOUS_IO,
2117 _SC_PRIORITIZED_IO,
2118 _SC_SYNCHRONIZED_IO,
2119 _SC_FSYNC,
2120 _SC_MAPPED_FILES,
2121 _SC_MEMLOCK,
2122 _SC_MEMLOCK_RANGE,
2123 _SC_MEMORY_PROTECTION,
2124 _SC_MESSAGE_PASSING,
2125 _SC_SEMAPHORES,
2126 _SC_SHARED_MEMORY_OBJECTS,
2127 _SC_AIO_LISTIO_MAX,
2128 _SC_AIO_MAX,
2129 _SC_AIO_PRIO_DELTA_MAX,
2130 _SC_DELAYTIMER_MAX,
2131 _SC_MQ_OPEN_MAX,
2132 _SC_MQ_PRIO_MAX,
2133 _SC_VERSION,
2134 _SC_PAGESIZE,
2135 _SC_PAGE_SIZE = _SC_PAGESIZE,
2136 _SC_RTSIG_MAX,
2137 _SC_SEM_NSEMS_MAX,
2138 _SC_SEM_VALUE_MAX,
2139 _SC_SIGQUEUE_MAX,
2140 _SC_TIMER_MAX,
2141
2142 _SC_BC_BASE_MAX,
2143 _SC_BC_DIM_MAX,
2144 _SC_BC_SCALE_MAX,
2145 _SC_BC_STRING_MAX,
2146 _SC_COLL_WEIGHTS_MAX,
2147 _SC_EQUIV_CLASS_MAX,
2148 _SC_EXPR_NEST_MAX,
2149 _SC_LINE_MAX,
2150 _SC_RE_DUP_MAX,
2151 _SC_CHARCLASS_NAME_MAX,
2152
2153 _SC_2_VERSION,
2154 _SC_2_C_BIND,
2155 _SC_2_C_DEV,
2156 _SC_2_FORT_DEV,
2157 _SC_2_FORT_RUN,
2158 _SC_2_SW_DEV,
2159 _SC_2_LOCALEDEF,
2160
2161 _SC_PII,
2162 _SC_PII_XTI,
2163 _SC_PII_SOCKET,
2164 _SC_PII_INTERNET,
2165 _SC_PII_OSI,
2166 _SC_POLL,
2167 _SC_SELECT,
2168 _SC_UIO_MAXIOV,
2169 _SC_IOV_MAX = _SC_UIO_MAXIOV,
2170 _SC_PII_INTERNET_STREAM,
2171 _SC_PII_INTERNET_DGRAM,
2172 _SC_PII_OSI_COTS,
2173 _SC_PII_OSI_CLTS,
2174 _SC_PII_OSI_M,
2175 _SC_T_IOV_MAX,
2176
2177 _SC_THREADS,
2178 _SC_THREAD_SAFE_FUNCTIONS,
2179 _SC_GETGR_R_SIZE_MAX,
2180 _SC_GETPW_R_SIZE_MAX,
2181 _SC_LOGIN_NAME_MAX,
2182 _SC_TTY_NAME_MAX,
2183 _SC_THREAD_DESTRUCTOR_ITERATIONS,
2184 _SC_THREAD_KEYS_MAX,
2185 _SC_THREAD_STACK_MIN,
2186 _SC_THREAD_THREADS_MAX,
2187 _SC_THREAD_ATTR_STACKADDR,
2188 _SC_THREAD_ATTR_STACKSIZE,
2189 _SC_THREAD_PRIORITY_SCHEDULING,
2190 _SC_THREAD_PRIO_INHERIT,
2191 _SC_THREAD_PRIO_PROTECT,
2192 _SC_THREAD_PROCESS_SHARED,
2193
2194 _SC_NPROCESSORS_CONF,
2195 _SC_NPROCESSORS_ONLN,
2196 _SC_PHYS_PAGES,
2197 _SC_AVPHYS_PAGES,
2198 _SC_ATEXIT_MAX,
2199 _SC_PASS_MAX,
2200
2201 _SC_XOPEN_VERSION,
2202 _SC_XOPEN_XCU_VERSION,
2203 _SC_XOPEN_UNIX,
2204 _SC_XOPEN_CRYPT,
2205 _SC_XOPEN_ENH_I18N,
2206 _SC_XOPEN_SHM,
2207
2208 _SC_2_CHAR_TERM,
2209 _SC_2_C_VERSION,
2210 _SC_2_UPE,
2211
2212 _SC_XOPEN_XPG2,
2213 _SC_XOPEN_XPG3,
2214 _SC_XOPEN_XPG4,
2215
2216 _SC_CHAR_BIT,
2217 _SC_CHAR_MAX,
2218 _SC_CHAR_MIN,
2219 _SC_INT_MAX,
2220 _SC_INT_MIN,
2221 _SC_LONG_BIT,
2222 _SC_WORD_BIT,
2223 _SC_MB_LEN_MAX,
2224 _SC_NZERO,
2225 _SC_SSIZE_MAX,
2226 _SC_SCHAR_MAX,
2227 _SC_SCHAR_MIN,
2228 _SC_SHRT_MAX,
2229 _SC_SHRT_MIN,
2230 _SC_UCHAR_MAX,
2231 _SC_UINT_MAX,
2232 _SC_ULONG_MAX,
2233 _SC_USHRT_MAX,
2234
2235 _SC_NL_ARGMAX,
2236 _SC_NL_LANGMAX,
2237 _SC_NL_MSGMAX,
2238 _SC_NL_NMAX,
2239 _SC_NL_SETMAX,
2240 _SC_NL_TEXTMAX,
2241
2242 _SC_XBS5_ILP32_OFF32,
2243 _SC_XBS5_ILP32_OFFBIG,
2244 _SC_XBS5_LP64_OFF64,
2245 _SC_XBS5_LPBIG_OFFBIG,
2246
2247 _SC_XOPEN_LEGACY,
2248 _SC_XOPEN_REALTIME,
2249 _SC_XOPEN_REALTIME_THREADS,
2250
2251 _SC_ADVISORY_INFO,
2252 _SC_BARRIERS,
2253 _SC_BASE,
2254 _SC_C_LANG_SUPPORT,
2255 _SC_C_LANG_SUPPORT_R,
2256 _SC_CLOCK_SELECTION,
2257 _SC_CPUTIME,
2258 _SC_THREAD_CPUTIME,
2259 _SC_DEVICE_IO,
2260 _SC_DEVICE_SPECIFIC,
2261 _SC_DEVICE_SPECIFIC_R,
2262 _SC_FD_MGMT,
2263 _SC_FIFO,
2264 _SC_PIPE,
2265 _SC_FILE_ATTRIBUTES,
2266 _SC_FILE_LOCKING,
2267 _SC_FILE_SYSTEM,
2268 _SC_MONOTONIC_CLOCK,
2269 _SC_MULTI_PROCESS,
2270 _SC_SINGLE_PROCESS,
2271 _SC_NETWORKING,
2272 _SC_READER_WRITER_LOCKS,
2273 _SC_SPIN_LOCKS,
2274 _SC_REGEXP,
2275 _SC_REGEX_VERSION,
2276 _SC_SHELL,
2277 _SC_SIGNALS,
2278 _SC_SPAWN,
2279 _SC_SPORADIC_SERVER,
2280 _SC_THREAD_SPORADIC_SERVER,
2281 _SC_SYSTEM_DATABASE,
2282 _SC_SYSTEM_DATABASE_R,
2283 _SC_TIMEOUTS,
2284 _SC_TYPED_MEMORY_OBJECTS,
2285 _SC_USER_GROUPS,
2286 _SC_USER_GROUPS_R,
2287 _SC_2_PBS,
2288 _SC_2_PBS_ACCOUNTING,
2289 _SC_2_PBS_LOCATE,
2290 _SC_2_PBS_MESSAGE,
2291 _SC_2_PBS_TRACK,
2292 _SC_SYMLOOP_MAX,
2293 _SC_STREAMS,
2294 _SC_2_PBS_CHECKPOINT,
2295
2296 _SC_V6_ILP32_OFF32,
2297 _SC_V6_ILP32_OFFBIG,
2298 _SC_V6_LP64_OFF64,
2299 _SC_V6_LPBIG_OFFBIG,
2300
2301 _SC_HOST_NAME_MAX,
2302 _SC_TRACE,
2303 _SC_TRACE_EVENT_FILTER,
2304 _SC_TRACE_INHERIT,
2305 _SC_TRACE_LOG,
2306
2307 _SC_LEVEL1_ICACHE_SIZE,
2308 _SC_LEVEL1_ICACHE_ASSOC,
2309 _SC_LEVEL1_ICACHE_LINESIZE,
2310 _SC_LEVEL1_DCACHE_SIZE,
2311 _SC_LEVEL1_DCACHE_ASSOC,
2312 _SC_LEVEL1_DCACHE_LINESIZE,
2313 _SC_LEVEL2_CACHE_SIZE,
2314 _SC_LEVEL2_CACHE_ASSOC,
2315 _SC_LEVEL2_CACHE_LINESIZE,
2316 _SC_LEVEL3_CACHE_SIZE,
2317 _SC_LEVEL3_CACHE_ASSOC,
2318 _SC_LEVEL3_CACHE_LINESIZE,
2319 _SC_LEVEL4_CACHE_SIZE,
2320 _SC_LEVEL4_CACHE_ASSOC,
2321 _SC_LEVEL4_CACHE_LINESIZE,
2322
2323 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
2324 _SC_RAW_SOCKETS
2325 }
2326 }
2327
2328 //
2329 // File Synchronization (FSC)
2330 //
2331 /*
2332 int fsync(int);
2333 */
2334
2335 version (CRuntime_Glibc)
2336 {
2337 int fsync(int) @trusted;
2338 }
2339 else version (Darwin)
2340 {
2341 int fsync(int) @trusted;
2342 }
2343 else version (FreeBSD)
2344 {
2345 int fsync(int) @trusted;
2346 }
2347 else version (NetBSD)
2348 {
2349 int fsync(int) @trusted;
2350 }
2351 else version (OpenBSD)
2352 {
2353 int fsync(int) @trusted;
2354 }
2355 else version (DragonFlyBSD)
2356 {
2357 int fsync(int) @trusted;
2358 }
2359 else version (CRuntime_Bionic)
2360 {
2361 int fsync(int) @trusted;
2362 }
2363 else version (CRuntime_Musl)
2364 {
2365 int fsync(int) @trusted;
2366 }
2367 else version (Solaris)
2368 {
2369 int fsync(int) @trusted;
2370 }
2371 else version (CRuntime_UClibc)
2372 {
2373 int fsync(int) @trusted;
2374 }
2375
2376 //
2377 // Synchronized I/O (SIO)
2378 //
2379 /*
2380 int fdatasync(int);
2381 */
2382
2383 version (CRuntime_Glibc)
2384 {
2385 int fdatasync(int) @trusted;
2386 }
2387 else version (Solaris)
2388 {
2389 int fdatasync(int) @trusted;
2390 }
2391 else version (CRuntime_Bionic)
2392 {
2393 int fdatasync(int) @trusted;
2394 }
2395 else version (CRuntime_UClibc)
2396 {
2397 int fdatasync(int) @trusted;
2398 }
2399
2400 //
2401 // XOpen (XSI)
2402 //
2403 /*
2404 char* crypt(const scope char*, const scope char*);
2405 char* ctermid(char*);
2406 void encrypt(ref char[64], int);
2407 int fchdir(int);
2408 c_long gethostid();
2409 pid_t getpgid(pid_t);
2410 pid_t getsid(pid_t);
2411 char* getwd(char*); // LEGACY
2412 int lchown(const scope char*, uid_t, gid_t);
2413 int lockf(int, int, off_t);
2414 int nice(int);
2415 ssize_t pread(int, void*, size_t, off_t);
2416 ssize_t pwrite(int, const scope void*, size_t, off_t);
2417 pid_t setpgrp();
2418 int setregid(gid_t, gid_t);
2419 int setreuid(uid_t, uid_t);
2420 void swab(const scope void*, void*, ssize_t);
2421 void sync();
2422 int truncate(const scope char*, off_t);
2423 useconds_t ualarm(useconds_t, useconds_t);
2424 int usleep(useconds_t);
2425 pid_t vfork();
2426 */
2427
2428 version (CRuntime_Glibc)
2429 {
2430 char* crypt(const scope char*, const scope char*);
2431 char* ctermid(char*);
2432 void encrypt(ref char[64], int) @trusted;
2433 int fchdir(int) @trusted;
2434 c_long gethostid() @trusted;
2435 pid_t getpgid(pid_t) @trusted;
2436 pid_t getsid(pid_t) @trusted;
2437 char* getwd(char*); // LEGACY
2438 int lchown(const scope char*, uid_t, gid_t);
2439 //int lockf(int, int, off_t);
2440 int nice(int) @trusted;
2441 //ssize_t pread(int, void*, size_t, off_t);
2442 //ssize_t pwrite(int, const scope void*, size_t, off_t);
2443 pid_t setpgrp() @trusted;
2444 int setregid(gid_t, gid_t) @trusted;
2445 int setreuid(uid_t, uid_t) @trusted;
2446 void swab(const scope void*, void*, ssize_t);
2447 void sync() @trusted;
2448 //int truncate(const scope char*, off_t);
2449 useconds_t ualarm(useconds_t, useconds_t) @trusted;
2450 int usleep(useconds_t) @trusted;
2451 pid_t vfork();
2452
2453 static if ( __USE_FILE_OFFSET64 )
2454 {
2455 int lockf64(int, int, off_t) @trusted;
2456 alias lockf64 lockf;
2457
2458 ssize_t pread64(int, void*, size_t, off_t);
2459 alias pread64 pread;
2460
2461 ssize_t pwrite64(int, const scope void*, size_t, off_t);
2462 alias pwrite64 pwrite;
2463
2464 int truncate64(const scope char*, off_t);
2465 alias truncate64 truncate;
2466 }
2467 else
2468 {
2469 int lockf(int, int, off_t) @trusted;
2470 ssize_t pread(int, void*, size_t, off_t);
2471 ssize_t pwrite(int, const scope void*, size_t, off_t);
2472 int truncate(const scope char*, off_t);
2473 }
2474 }
2475 else version (CRuntime_Musl)
2476 {
2477 int fchdir(int) @trusted;
2478 int lockf(int, int, off_t);
2479 alias lockf lockf64;
2480 }
2481 else version (Darwin)
2482 {
2483 char* crypt(const scope char*, const scope char*);
2484 char* ctermid(char*);
2485 void encrypt(ref char[64], int) @trusted;
2486 int fchdir(int) @trusted;
2487 c_long gethostid() @trusted;
2488 pid_t getpgid(pid_t) @trusted;
2489 pid_t getsid(pid_t) @trusted;
2490 char* getwd(char*); // LEGACY
2491 int lchown(const scope char*, uid_t, gid_t);
2492 int lockf(int, int, off_t) @trusted;
2493 int nice(int) @trusted;
2494 ssize_t pread(int, void*, size_t, off_t);
2495 ssize_t pwrite(int, const scope void*, size_t, off_t);
2496 pid_t setpgrp() @trusted;
2497 int setregid(gid_t, gid_t) @trusted;
2498 int setreuid(uid_t, uid_t) @trusted;
2499 void swab(const scope void*, void*, ssize_t);
2500 void sync() @trusted;
2501 int truncate(const scope char*, off_t);
2502 useconds_t ualarm(useconds_t, useconds_t) @trusted;
2503 int usleep(useconds_t) @trusted;
2504 pid_t vfork();
2505 }
2506 else version (FreeBSD)
2507 {
2508 char* crypt(const scope char*, const scope char*);
2509 //char* ctermid(char*);
2510 void encrypt(ref char[64], int) @trusted;
2511 int fchdir(int) @trusted;
2512 c_long gethostid() @trusted;
2513 int getpgid(pid_t) @trusted;
2514 int getsid(pid_t) @trusted;
2515 char* getwd(char*); // LEGACY
2516 int lchown(const scope char*, uid_t, gid_t);
2517 int lockf(int, int, off_t) @trusted;
2518 int nice(int) @trusted;
2519 ssize_t pread(int, void*, size_t, off_t);
2520 ssize_t pwrite(int, const scope void*, size_t, off_t);
2521 int setpgrp(pid_t, pid_t) @trusted;
2522 int setregid(gid_t, gid_t) @trusted;
2523 int setreuid(uid_t, uid_t) @trusted;
2524 void swab(const scope void*, void*, ssize_t);
2525 void sync() @trusted;
2526 int truncate(const scope char*, off_t);
2527 useconds_t ualarm(useconds_t, useconds_t) @trusted;
2528 int usleep(useconds_t) @trusted;
2529 pid_t vfork();
2530 }
2531 else version (NetBSD)
2532 {
2533 char* crypt(const scope char*, const scope char*);
2534 //char* ctermid(char*);
2535 void encrypt(ref char[64], int) @trusted;
2536 int fchdir(int) @trusted;
2537 c_long gethostid() @trusted;
2538 int getpgid(pid_t) @trusted;
2539 int getsid(pid_t) @trusted;
2540 char* getwd(char*); // LEGACY
2541 int lchown(const scope char*, uid_t, gid_t);
2542 int lockf(int, int, off_t) @trusted;
2543 int nice(int) @trusted;
2544 ssize_t pread(int, void*, size_t, off_t);
2545 ssize_t pwrite(int, const scope void*, size_t, off_t);
2546 int setpgrp(pid_t, pid_t) @trusted;
2547 int setregid(gid_t, gid_t) @trusted;
2548 int setreuid(uid_t, uid_t) @trusted;
2549 void swab(const scope void*, void*, ssize_t);
2550 void sync() @trusted;
2551 int truncate(const scope char*, off_t);
2552 useconds_t ualarm(useconds_t, useconds_t) @trusted;
2553 int usleep(useconds_t) @trusted;
2554 pid_t vfork();
2555 }
2556 else version (OpenBSD)
2557 {
2558 char* crypt(const scope char*, const scope char*);
2559 //char* ctermid(char*);
2560 //void encrypt(ref char[64], int) @trusted;
2561 int fchdir(int) @trusted;
2562 c_long gethostid() @trusted;
2563 pid_t getpgid(pid_t) @trusted;
2564 pid_t getsid(pid_t) @trusted;
2565 char* getwd(char*);
2566 int lchown(const scope char*, uid_t, gid_t);
2567 int lockf(int, int, off_t) @trusted;
2568 int nice(int) @trusted;
2569 ssize_t pread(int, void*, size_t, off_t);
2570 ssize_t pwrite(int, const scope void*, size_t, off_t);
2571 int setpgrp(pid_t, pid_t) @trusted;
2572 int setregid(gid_t, gid_t) @trusted;
2573 int setreuid(uid_t, uid_t) @trusted;
2574 void swab(const scope void*, void*, ssize_t);
2575 void sync() @trusted;
2576 int truncate(const scope char*, off_t);
2577 useconds_t ualarm(useconds_t, useconds_t) @trusted;
2578 int usleep(useconds_t) @trusted;
2579 pid_t vfork();
2580 }
2581 else version (DragonFlyBSD)
2582 {
2583 char* crypt(const scope char*, const scope char*);
2584 //char* ctermid(char*);
2585 void encrypt(ref char[64], int) @trusted;
2586 int fchdir(int) @trusted;
2587 c_long gethostid() @trusted;
2588 int getpgid(pid_t) @trusted;
2589 int getsid(pid_t) @trusted;
2590 char* getwd(char*); // LEGACY
2591 int lchown(const scope char*, uid_t, gid_t);
2592 int lockf(int, int, off_t) @trusted;
2593 int nice(int) @trusted;
2594 ssize_t pread(int, void*, size_t, off_t);
2595 ssize_t pwrite(int, const scope void*, size_t, off_t);
2596 int setpgrp(pid_t, pid_t) @trusted;
2597 int setregid(gid_t, gid_t) @trusted;
2598 int setreuid(uid_t, uid_t) @trusted;
2599 void swab(const scope void*, void*, ssize_t);
2600 void sync() @trusted;
2601 int truncate(const scope char*, off_t);
2602 useconds_t ualarm(useconds_t, useconds_t) @trusted;
2603 int usleep(useconds_t) @trusted;
2604 pid_t vfork();
2605 }
2606 else version (CRuntime_Bionic)
2607 {
2608 int fchdir(int) @trusted;
2609 pid_t getpgid(pid_t) @trusted;
2610 int lchown(const scope char*, uid_t, gid_t);
2611 int nice(int) @trusted;
2612 ssize_t pread(int, void*, size_t, off_t);
2613 ssize_t pwrite(int, const scope void*, size_t, off_t);
2614 int setpgrp() @trusted;
2615 int setregid(gid_t, gid_t) @trusted;
2616 int setreuid(uid_t, uid_t) @trusted;
2617 int sync() @trusted;
2618 int truncate(const scope char*, off_t);
2619 int usleep(c_ulong) @trusted;
2620 pid_t vfork();
2621 }
2622 else version (Solaris)
2623 {
2624 char* crypt(const scope char*, const scope char*);
2625 char* ctermid(char*);
2626 void encrypt(ref char[64], int);
2627 int fchdir(int);
2628 c_long gethostid();
2629 pid_t getpgid(pid_t);
2630 pid_t getsid(pid_t);
2631 char* getwd(char*); // LEGACY
2632 int lchown(const scope char*, uid_t, gid_t);
2633 int nice(int);
2634 pid_t setpgrp();
2635 int setregid(gid_t, gid_t);
2636 int setreuid(uid_t, uid_t);
2637 void swab(const scope void*, void*, ssize_t);
2638 void sync();
2639 useconds_t ualarm(useconds_t, useconds_t);
2640 int usleep(useconds_t);
2641 pid_t vfork();
2642
2643 version (D_LP64)
2644 {
2645 int lockf(int, int, off_t);
2646 alias lockf lockf64;
2647
2648 ssize_t pread(int, void*, size_t, off_t);
2649 alias pread pread64;
2650
2651 ssize_t pwrite(int, const scope void*, size_t, off_t);
2652 alias pwrite pwrite64;
2653
2654 int truncate(const scope char*, off_t);
2655 alias truncate truncate64;
2656 }
2657 else
2658 {
2659 static if ( __USE_FILE_OFFSET64 )
2660 {
2661 int lockf64(int, int, off64_t);
2662 alias lockf64 lockf;
2663
2664 ssize_t pread64(int, void*, size_t, off64_t);
2665 alias pread64 pread;
2666
2667 ssize_t pwrite64(int, const scope void*, size_t, off_t);
2668 alias pwrite64 pwrite;
2669
2670 int truncate64(const scope char*, off_t);
2671 alias truncate64 truncate;
2672 }
2673 else
2674 {
2675 int lockf(int, int, off_t);
2676 ssize_t pread(int, void*, size_t, off_t);
2677 ssize_t pwrite(int, const scope void*, size_t, off_t);
2678 int truncate(const scope char*, off_t);
2679 }
2680 }
2681 }
2682 else version (CRuntime_UClibc)
2683 {
2684 char* crypt(const scope char*, const scope char*);
2685 char* ctermid(char*);
2686 void encrypt(ref char[64], int) @trusted;
2687 int fchdir(int) @trusted;
2688 c_long gethostid() @trusted;
2689 pid_t getpgid(pid_t) @trusted;
2690 pid_t getsid(pid_t) @trusted;
2691 char* getwd(char*); // LEGACY
2692 int lchown(const scope char*, uid_t, gid_t);
2693 int nice(int) @trusted;
2694 pid_t setpgrp() @trusted;
2695 int setregid(gid_t, gid_t) @trusted;
2696 int setreuid(uid_t, uid_t) @trusted;
2697 void swab(const scope void*, void*, ssize_t);
2698 void sync() @trusted;
2699 useconds_t ualarm(useconds_t, useconds_t) @trusted;
2700 int usleep(useconds_t) @trusted;
2701 pid_t vfork();
2702
2703 static if ( __USE_FILE_OFFSET64 )
2704 {
2705 int lockf64(int, int, off_t) @trusted;
2706 alias lockf64 lockf;
2707
2708 ssize_t pread64(int, void*, size_t, off_t);
2709 alias pread64 pread;
2710
2711 ssize_t pwrite64(int, const scope void*, size_t, off_t);
2712 alias pwrite64 pwrite;
2713
2714 int truncate64(const scope char*, off_t);
2715 alias truncate64 truncate;
2716 }
2717 else
2718 {
2719 int lockf(int, int, off_t) @trusted;
2720 ssize_t pread(int, void*, size_t, off_t);
2721 ssize_t pwrite(int, const scope void*, size_t, off_t);
2722 int truncate(const scope char*, off_t);
2723 }
2724 }
2725
2726 // Non-standard definition to access user process environment
2727 version (CRuntime_Glibc)
2728 {
2729 extern __gshared const char** environ;
2730 }
2731 else version (Darwin)
2732 {
2733 extern (D) @property const(char**) environ()()
2734 {
2735 pragma (inline, true);
2736 import core.sys.darwin.crt_externs : _NSGetEnviron;
2737 return *_NSGetEnviron();
2738 }
2739 }
2740 else version (FreeBSD)
2741 {
2742 extern __gshared const char** environ;
2743 }
2744 else version (NetBSD)
2745 {
2746 extern __gshared const char** environ;
2747 }
2748 else version (OpenBSD)
2749 {
2750 extern __gshared const char** environ;
2751 }
2752 else version (DragonFlyBSD)
2753 {
2754 extern __gshared const char** environ;
2755 }
2756 else version (CRuntime_Bionic)
2757 {
2758 extern __gshared const char** environ;
2759 }
2760 else version (CRuntime_Musl)
2761 {
2762 extern __gshared const char** environ;
2763 }
2764 else version (Solaris)
2765 {
2766 extern __gshared const char** environ;
2767 }
2768 else version (CRuntime_UClibc)
2769 {
2770 extern __gshared const char** __environ;
2771 alias environ = __environ;
2772 }
2773