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