Mercurial > projects > ldc
comparison tango/tango/stdc/posix/unistd.d @ 132:1700239cab2e trunk
[svn r136] MAJOR UNSTABLE UPDATE!!!
Initial commit after moving to Tango instead of Phobos.
Lots of bugfixes...
This build is not suitable for most things.
author | lindquist |
---|---|
date | Fri, 11 Jan 2008 17:57:40 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:5825d48b27d1 | 132:1700239cab2e |
---|---|
1 /** | |
2 * D header file for POSIX. | |
3 * | |
4 * Copyright: Public Domain | |
5 * License: Public Domain | |
6 * Authors: Sean Kelly | |
7 * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition | |
8 */ | |
9 module tango.stdc.posix.unistd; | |
10 | |
11 private import tango.stdc.posix.config; | |
12 private import tango.stdc.stddef; | |
13 public import tango.stdc.posix.inttypes; // for intptr_t | |
14 public import tango.stdc.posix.sys.types; // for size_t, ssize_t, uid_t, gid_t, off_t, pid_t, useconds_t | |
15 | |
16 extern (C): | |
17 | |
18 const STDIN_FILENO = 0; | |
19 const STDOUT_FILENO = 1; | |
20 const STDERR_FILENO = 2; | |
21 | |
22 char* optarg; | |
23 int optind; | |
24 int opterr; | |
25 int optopt; | |
26 | |
27 int access(char*, int); | |
28 uint alarm(uint); | |
29 int chdir(char*); | |
30 int chown(char*, uid_t, gid_t); | |
31 int close(int); | |
32 size_t confstr(int, char*, size_t); | |
33 int dup(int); | |
34 int dup2(int, int); | |
35 int execl(char*, char*, ...); | |
36 int execle(char*, char*, ...); | |
37 int execlp(char*, char*, ...); | |
38 int execv(char*, char**); | |
39 int execve(char*, char**, char**); | |
40 int execvp(char*, char**); | |
41 void _exit(int); | |
42 int fchown(int, uid_t, gid_t); | |
43 pid_t fork(); | |
44 c_long fpathconf(int, int); | |
45 int ftruncate(int, off_t); | |
46 char* getcwd(char*, size_t); | |
47 gid_t getegid(); | |
48 uid_t geteuid(); | |
49 gid_t getgid(); | |
50 int getgroups(int, gid_t *); | |
51 int gethostname(char*, size_t); | |
52 char* getlogin(); | |
53 int getlogin_r(char*, size_t); | |
54 int getopt(int, char**, char*); | |
55 pid_t getpgrp(); | |
56 pid_t getpid(); | |
57 pid_t getppid(); | |
58 uid_t getuid(); | |
59 int isatty(int); | |
60 int link(char*, char*); | |
61 off_t lseek(int, off_t, int); | |
62 c_long pathconf(char*, int); | |
63 int pause(); | |
64 int pipe(int[2]); | |
65 ssize_t read(int, void*, size_t); | |
66 ssize_t readlink(char*, char*, size_t); | |
67 int rmdir(char*); | |
68 int setegid(gid_t); | |
69 int seteuid(uid_t); | |
70 int setgid(gid_t); | |
71 int setpgid(pid_t, pid_t); | |
72 pid_t setsid(); | |
73 int setuid(uid_t); | |
74 uint sleep(uint); | |
75 int symlink(char*, char*); | |
76 c_long sysconf(int); | |
77 pid_t tcgetpgrp(int); | |
78 int tcsetpgrp(int, pid_t); | |
79 char* ttyname(int); | |
80 int ttyname_r(int, char*, size_t); | |
81 int unlink(char*); | |
82 ssize_t write(int, void*, size_t); | |
83 | |
84 version( linux ) | |
85 { | |
86 const F_OK = 0; | |
87 const R_OK = 4; | |
88 const W_OK = 2; | |
89 const X_OK = 1; | |
90 | |
91 const F_ULOCK = 0; | |
92 const F_LOCK = 1; | |
93 const F_TLOCK = 2; | |
94 const F_TEST = 3; | |
95 | |
96 enum | |
97 { | |
98 _CS_PATH, | |
99 | |
100 _CS_V6_WIDTH_RESTRICTED_ENVS, | |
101 | |
102 _CS_GNU_LIBC_VERSION, | |
103 _CS_GNU_LIBPTHREAD_VERSION, | |
104 | |
105 _CS_LFS_CFLAGS = 1000, | |
106 _CS_LFS_LDFLAGS, | |
107 _CS_LFS_LIBS, | |
108 _CS_LFS_LINTFLAGS, | |
109 _CS_LFS64_CFLAGS, | |
110 _CS_LFS64_LDFLAGS, | |
111 _CS_LFS64_LIBS, | |
112 _CS_LFS64_LINTFLAGS, | |
113 | |
114 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, | |
115 _CS_XBS5_ILP32_OFF32_LDFLAGS, | |
116 _CS_XBS5_ILP32_OFF32_LIBS, | |
117 _CS_XBS5_ILP32_OFF32_LINTFLAGS, | |
118 _CS_XBS5_ILP32_OFFBIG_CFLAGS, | |
119 _CS_XBS5_ILP32_OFFBIG_LDFLAGS, | |
120 _CS_XBS5_ILP32_OFFBIG_LIBS, | |
121 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, | |
122 _CS_XBS5_LP64_OFF64_CFLAGS, | |
123 _CS_XBS5_LP64_OFF64_LDFLAGS, | |
124 _CS_XBS5_LP64_OFF64_LIBS, | |
125 _CS_XBS5_LP64_OFF64_LINTFLAGS, | |
126 _CS_XBS5_LPBIG_OFFBIG_CFLAGS, | |
127 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, | |
128 _CS_XBS5_LPBIG_OFFBIG_LIBS, | |
129 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, | |
130 | |
131 _CS_POSIX_V6_ILP32_OFF32_CFLAGS, | |
132 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, | |
133 _CS_POSIX_V6_ILP32_OFF32_LIBS, | |
134 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, | |
135 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, | |
136 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, | |
137 _CS_POSIX_V6_ILP32_OFFBIG_LIBS, | |
138 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, | |
139 _CS_POSIX_V6_LP64_OFF64_CFLAGS, | |
140 _CS_POSIX_V6_LP64_OFF64_LDFLAGS, | |
141 _CS_POSIX_V6_LP64_OFF64_LIBS, | |
142 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, | |
143 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, | |
144 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, | |
145 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, | |
146 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS | |
147 } | |
148 | |
149 enum | |
150 { | |
151 _PC_LINK_MAX, | |
152 _PC_MAX_CANON, | |
153 _PC_MAX_INPUT, | |
154 _PC_NAME_MAX, | |
155 _PC_PATH_MAX, | |
156 _PC_PIPE_BUF, | |
157 _PC_CHOWN_RESTRICTED, | |
158 _PC_NO_TRUNC, | |
159 _PC_VDISABLE, | |
160 _PC_SYNC_IO, | |
161 _PC_ASYNC_IO, | |
162 _PC_PRIO_IO, | |
163 _PC_SOCK_MAXBUF, | |
164 _PC_FILESIZEBITS, | |
165 _PC_REC_INCR_XFER_SIZE, | |
166 _PC_REC_MAX_XFER_SIZE, | |
167 _PC_REC_MIN_XFER_SIZE, | |
168 _PC_REC_XFER_ALIGN, | |
169 _PC_ALLOC_SIZE_MIN, | |
170 _PC_SYMLINK_MAX, | |
171 _PC_2_SYMLINKS | |
172 } | |
173 | |
174 enum | |
175 { | |
176 _SC_ARG_MAX, | |
177 _SC_CHILD_MAX, | |
178 _SC_CLK_TCK, | |
179 _SC_NGROUPS_MAX, | |
180 _SC_OPEN_MAX, | |
181 _SC_STREAM_MAX, | |
182 _SC_TZNAME_MAX, | |
183 _SC_JOB_CONTROL, | |
184 _SC_SAVED_IDS, | |
185 _SC_REALTIME_SIGNALS, | |
186 _SC_PRIORITY_SCHEDULING, | |
187 _SC_TIMERS, | |
188 _SC_ASYNCHRONOUS_IO, | |
189 _SC_PRIORITIZED_IO, | |
190 _SC_SYNCHRONIZED_IO, | |
191 _SC_FSYNC, | |
192 _SC_MAPPED_FILES, | |
193 _SC_MEMLOCK, | |
194 _SC_MEMLOCK_RANGE, | |
195 _SC_MEMORY_PROTECTION, | |
196 _SC_MESSAGE_PASSING, | |
197 _SC_SEMAPHORES, | |
198 _SC_SHARED_MEMORY_OBJECTS, | |
199 _SC_AIO_LISTIO_MAX, | |
200 _SC_AIO_MAX, | |
201 _SC_AIO_PRIO_DELTA_MAX, | |
202 _SC_DELAYTIMER_MAX, | |
203 _SC_MQ_OPEN_MAX, | |
204 _SC_MQ_PRIO_MAX, | |
205 _SC_VERSION, | |
206 _SC_PAGESIZE, | |
207 _SC_PAGE_SIZE = _SC_PAGESIZE, | |
208 _SC_RTSIG_MAX, | |
209 _SC_SEM_NSEMS_MAX, | |
210 _SC_SEM_VALUE_MAX, | |
211 _SC_SIGQUEUE_MAX, | |
212 _SC_TIMER_MAX, | |
213 | |
214 _SC_BC_BASE_MAX, | |
215 _SC_BC_DIM_MAX, | |
216 _SC_BC_SCALE_MAX, | |
217 _SC_BC_STRING_MAX, | |
218 _SC_COLL_WEIGHTS_MAX, | |
219 _SC_EQUIV_CLASS_MAX, | |
220 _SC_EXPR_NEST_MAX, | |
221 _SC_LINE_MAX, | |
222 _SC_RE_DUP_MAX, | |
223 _SC_CHARCLASS_NAME_MAX, | |
224 | |
225 _SC_2_VERSION, | |
226 _SC_2_C_BIND, | |
227 _SC_2_C_DEV, | |
228 _SC_2_FORT_DEV, | |
229 _SC_2_FORT_RUN, | |
230 _SC_2_SW_DEV, | |
231 _SC_2_LOCALEDEF, | |
232 | |
233 _SC_PII, | |
234 _SC_PII_XTI, | |
235 _SC_PII_SOCKET, | |
236 _SC_PII_INTERNET, | |
237 _SC_PII_OSI, | |
238 _SC_POLL, | |
239 _SC_SELECT, | |
240 _SC_UIO_MAXIOV, | |
241 _SC_IOV_MAX = _SC_UIO_MAXIOV, | |
242 _SC_PII_INTERNET_STREAM, | |
243 _SC_PII_INTERNET_DGRAM, | |
244 _SC_PII_OSI_COTS, | |
245 _SC_PII_OSI_CLTS, | |
246 _SC_PII_OSI_M, | |
247 _SC_T_IOV_MAX, | |
248 | |
249 _SC_THREADS, | |
250 _SC_THREAD_SAFE_FUNCTIONS, | |
251 _SC_GETGR_R_SIZE_MAX, | |
252 _SC_GETPW_R_SIZE_MAX, | |
253 _SC_LOGIN_NAME_MAX, | |
254 _SC_TTY_NAME_MAX, | |
255 _SC_THREAD_DESTRUCTOR_ITERATIONS, | |
256 _SC_THREAD_KEYS_MAX, | |
257 _SC_THREAD_STACK_MIN, | |
258 _SC_THREAD_THREADS_MAX, | |
259 _SC_THREAD_ATTR_STACKADDR, | |
260 _SC_THREAD_ATTR_STACKSIZE, | |
261 _SC_THREAD_PRIORITY_SCHEDULING, | |
262 _SC_THREAD_PRIO_INHERIT, | |
263 _SC_THREAD_PRIO_PROTECT, | |
264 _SC_THREAD_PROCESS_SHARED, | |
265 | |
266 _SC_NPROCESSORS_CONF, | |
267 _SC_NPROCESSORS_ONLN, | |
268 _SC_PHYS_PAGES, | |
269 _SC_AVPHYS_PAGES, | |
270 _SC_ATEXIT_MAX, | |
271 _SC_PASS_MAX, | |
272 | |
273 _SC_XOPEN_VERSION, | |
274 _SC_XOPEN_XCU_VERSION, | |
275 _SC_XOPEN_UNIX, | |
276 _SC_XOPEN_CRYPT, | |
277 _SC_XOPEN_ENH_I18N, | |
278 _SC_XOPEN_SHM, | |
279 | |
280 _SC_2_CHAR_TERM, | |
281 _SC_2_C_VERSION, | |
282 _SC_2_UPE, | |
283 | |
284 _SC_XOPEN_XPG2, | |
285 _SC_XOPEN_XPG3, | |
286 _SC_XOPEN_XPG4, | |
287 | |
288 _SC_CHAR_BIT, | |
289 _SC_CHAR_MAX, | |
290 _SC_CHAR_MIN, | |
291 _SC_INT_MAX, | |
292 _SC_INT_MIN, | |
293 _SC_LONG_BIT, | |
294 _SC_WORD_BIT, | |
295 _SC_MB_LEN_MAX, | |
296 _SC_NZERO, | |
297 _SC_SSIZE_MAX, | |
298 _SC_SCHAR_MAX, | |
299 _SC_SCHAR_MIN, | |
300 _SC_SHRT_MAX, | |
301 _SC_SHRT_MIN, | |
302 _SC_UCHAR_MAX, | |
303 _SC_UINT_MAX, | |
304 _SC_ULONG_MAX, | |
305 _SC_USHRT_MAX, | |
306 | |
307 _SC_NL_ARGMAX, | |
308 _SC_NL_LANGMAX, | |
309 _SC_NL_MSGMAX, | |
310 _SC_NL_NMAX, | |
311 _SC_NL_SETMAX, | |
312 _SC_NL_TEXTMAX, | |
313 | |
314 _SC_XBS5_ILP32_OFF32, | |
315 _SC_XBS5_ILP32_OFFBIG, | |
316 _SC_XBS5_LP64_OFF64, | |
317 _SC_XBS5_LPBIG_OFFBIG, | |
318 | |
319 _SC_XOPEN_LEGACY, | |
320 _SC_XOPEN_REALTIME, | |
321 _SC_XOPEN_REALTIME_THREADS, | |
322 | |
323 _SC_ADVISORY_INFO, | |
324 _SC_BARRIERS, | |
325 _SC_BASE, | |
326 _SC_C_LANG_SUPPORT, | |
327 _SC_C_LANG_SUPPORT_R, | |
328 _SC_CLOCK_SELECTION, | |
329 _SC_CPUTIME, | |
330 _SC_THREAD_CPUTIME, | |
331 _SC_DEVICE_IO, | |
332 _SC_DEVICE_SPECIFIC, | |
333 _SC_DEVICE_SPECIFIC_R, | |
334 _SC_FD_MGMT, | |
335 _SC_FIFO, | |
336 _SC_PIPE, | |
337 _SC_FILE_ATTRIBUTES, | |
338 _SC_FILE_LOCKING, | |
339 _SC_FILE_SYSTEM, | |
340 _SC_MONOTONIC_CLOCK, | |
341 _SC_MULTI_PROCESS, | |
342 _SC_SINGLE_PROCESS, | |
343 _SC_NETWORKING, | |
344 _SC_READER_WRITER_LOCKS, | |
345 _SC_SPIN_LOCKS, | |
346 _SC_REGEXP, | |
347 _SC_REGEX_VERSION, | |
348 _SC_SHELL, | |
349 _SC_SIGNALS, | |
350 _SC_SPAWN, | |
351 _SC_SPORADIC_SERVER, | |
352 _SC_THREAD_SPORADIC_SERVER, | |
353 _SC_SYSTEM_DATABASE, | |
354 _SC_SYSTEM_DATABASE_R, | |
355 _SC_TIMEOUTS, | |
356 _SC_TYPED_MEMORY_OBJECTS, | |
357 _SC_USER_GROUPS, | |
358 _SC_USER_GROUPS_R, | |
359 _SC_2_PBS, | |
360 _SC_2_PBS_ACCOUNTING, | |
361 _SC_2_PBS_LOCATE, | |
362 _SC_2_PBS_MESSAGE, | |
363 _SC_2_PBS_TRACK, | |
364 _SC_SYMLOOP_MAX, | |
365 _SC_STREAMS, | |
366 _SC_2_PBS_CHECKPOINT, | |
367 | |
368 _SC_V6_ILP32_OFF32, | |
369 _SC_V6_ILP32_OFFBIG, | |
370 _SC_V6_LP64_OFF64, | |
371 _SC_V6_LPBIG_OFFBIG, | |
372 | |
373 _SC_HOST_NAME_MAX, | |
374 _SC_TRACE, | |
375 _SC_TRACE_EVENT_FILTER, | |
376 _SC_TRACE_INHERIT, | |
377 _SC_TRACE_LOG, | |
378 | |
379 _SC_LEVEL1_ICACHE_SIZE, | |
380 _SC_LEVEL1_ICACHE_ASSOC, | |
381 _SC_LEVEL1_ICACHE_LINESIZE, | |
382 _SC_LEVEL1_DCACHE_SIZE, | |
383 _SC_LEVEL1_DCACHE_ASSOC, | |
384 _SC_LEVEL1_DCACHE_LINESIZE, | |
385 _SC_LEVEL2_CACHE_SIZE, | |
386 _SC_LEVEL2_CACHE_ASSOC, | |
387 _SC_LEVEL2_CACHE_LINESIZE, | |
388 _SC_LEVEL3_CACHE_SIZE, | |
389 _SC_LEVEL3_CACHE_ASSOC, | |
390 _SC_LEVEL3_CACHE_LINESIZE, | |
391 _SC_LEVEL4_CACHE_SIZE, | |
392 _SC_LEVEL4_CACHE_ASSOC, | |
393 _SC_LEVEL4_CACHE_LINESIZE, | |
394 | |
395 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, | |
396 _SC_RAW_SOCKETS | |
397 } | |
398 } | |
399 else version( darwin ) | |
400 { | |
401 const F_OK = 0; | |
402 const R_OK = 4; | |
403 const W_OK = 2; | |
404 const X_OK = 1; | |
405 | |
406 const F_ULOCK = 0; | |
407 const F_LOCK = 1; | |
408 const F_TLOCK = 2; | |
409 const F_TEST = 3; | |
410 } | |
411 | |
412 // | |
413 // File Synchronization (FSC) | |
414 // | |
415 /* | |
416 int fsync(int); | |
417 */ | |
418 | |
419 // | |
420 // Synchronized I/O (SIO) | |
421 // | |
422 /* | |
423 int fdatasync(int); | |
424 */ | |
425 | |
426 // | |
427 // XOpen (XSI) | |
428 // | |
429 /* | |
430 char* crypt(char*, char*); | |
431 char* ctermid(char*); | |
432 void encrypt(char[64], int); | |
433 int fchdir(int); | |
434 c_long gethostid(); | |
435 pid_t getpgid(pid_t); | |
436 pid_t getsid(pid_t); | |
437 char* getwd(char*); // LEGACY | |
438 int lchown(char*, uid_t, gid_t); | |
439 int lockf(int, int, off_t); | |
440 int nice(int); | |
441 ssize_t pread(int, void*, size_t, off_t); | |
442 ssize_t pwrite(int, void*, size_t, off_t); | |
443 pid_t setpgrp(); | |
444 int setregid(gid_t, gid_t); | |
445 int setreuid(uid_t, uid_t); | |
446 void swab(void*, void*, ssize_t); | |
447 void sync(); | |
448 int truncate(char*, off_t); | |
449 useconds_t ualarm(useconds_t, useconds_t); | |
450 int usleep(useconds_t); | |
451 pid_t vfork(); | |
452 */ | |
453 | |
454 version( linux ) | |
455 { | |
456 char* crypt(char*, char*); | |
457 char* ctermid(char*); | |
458 void encrypt(char[64], int); | |
459 int fchdir(int); | |
460 c_long gethostid(); | |
461 pid_t getpgid(pid_t); | |
462 pid_t getsid(pid_t); | |
463 char* getwd(char*); // LEGACY | |
464 int lchown(char*, uid_t, gid_t); | |
465 int lockf(int, int, off_t); | |
466 int nice(int); | |
467 ssize_t pread(int, void*, size_t, off_t); | |
468 ssize_t pwrite(int, void*, size_t, off_t); | |
469 pid_t setpgrp(); | |
470 int setregid(gid_t, gid_t); | |
471 int setreuid(uid_t, uid_t); | |
472 void swab(void*, void*, ssize_t); | |
473 void sync(); | |
474 int truncate(char*, off_t); | |
475 useconds_t ualarm(useconds_t, useconds_t); | |
476 int usleep(useconds_t); | |
477 pid_t vfork(); | |
478 } | |
479 else version (darwin) | |
480 { | |
481 char* crypt(char*, char*); | |
482 char* ctermid(char*); | |
483 void encrypt(char[64], int); | |
484 int fchdir(int); | |
485 c_long gethostid(); | |
486 pid_t getpgid(pid_t); | |
487 pid_t getsid(pid_t); | |
488 char* getwd(char*); // LEGACY | |
489 int lchown(char*, uid_t, gid_t); | |
490 int lockf(int, int, off_t); | |
491 int nice(int); | |
492 ssize_t pread(int, void*, size_t, off_t); | |
493 ssize_t pwrite(int, void*, size_t, off_t); | |
494 pid_t setpgrp(); | |
495 int setregid(gid_t, gid_t); | |
496 int setreuid(uid_t, uid_t); | |
497 void swab(void*, void*, ssize_t); | |
498 void sync(); | |
499 int truncate(char*, off_t); | |
500 useconds_t ualarm(useconds_t, useconds_t); | |
501 int usleep(useconds_t); | |
502 pid_t vfork(); | |
503 } |