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 }