Cygwin: access: Fix X_OK behaviour for backup operators and admins
[newlib-cygwin.git] / newlib / libc / include / sys / unistd.h
blob13b0c166f1a7b47f4bc45baf4d47d9166e4d5fbb
1 #ifndef _SYS_UNISTD_H
2 #define _SYS_UNISTD_H
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
8 #include <_ansi.h>
9 #define __need_size_t
10 #define __need_ptrdiff_t
11 #include <sys/cdefs.h>
12 #include <sys/types.h>
13 #include <sys/_types.h>
14 #include <stddef.h>
16 extern char **environ;
18 void _exit (int __status) _ATTRIBUTE ((__noreturn__));
20 int access (const char *__path, int __amode);
21 unsigned alarm (unsigned __secs);
22 int chdir (const char *__path);
23 int chmod (const char *__path, mode_t __mode);
24 int chown (const char *__path, uid_t __owner, gid_t __group);
25 #if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112)
26 int chroot (const char *__path);
27 #endif
28 int close (int __fildes);
29 #if defined(__CYGWIN__) && (__BSD_VISIBLE || __GNU_VISIBLE)
30 /* Available on FreeBSD (__BSD_VISIBLE) and Linux (__GNU_VISIBLE). */
31 int close_range (unsigned int __firstfd, unsigned int __lastfd, int __flags);
32 /* CLOSE_RANGE_UNSHARE (1 << 1) */ /* Linux-specific, not supported. */
33 #define CLOSE_RANGE_CLOEXEC (1 << 2)
34 #endif
35 #if __POSIX_VISIBLE >= 199209
36 size_t confstr (int __name, char *__buf, size_t __len);
37 #endif
38 #if __XSI_VISIBLE
39 char * crypt (const char *__key, const char *__salt);
40 #endif
41 #if __XSI_VISIBLE && __XSI_VISIBLE < 700
42 char * ctermid (char *__s);
43 #endif
44 #if __XSI_VISIBLE && __XSI_VISIBLE < 600
45 char * cuserid (char *__s);
46 #endif
47 #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
48 int daemon (int nochdir, int noclose);
49 #endif
50 int dup (int __fildes);
51 int dup2 (int __fildes, int __fildes2);
52 #if __GNU_VISIBLE
53 int dup3 (int __fildes, int __fildes2, int flags);
54 int eaccess (const char *__path, int __mode);
55 #endif
56 #if __XSI_VISIBLE
57 void encrypt (char *__block, int __edflag);
58 #endif
59 #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
60 void endusershell (void);
61 #endif
62 #if __GNU_VISIBLE
63 int euidaccess (const char *__path, int __mode);
64 #endif
65 int execl (const char *__path, const char *, ...);
66 int execle (const char *__path, const char *, ...);
67 int execlp (const char *__file, const char *, ...);
68 #if __MISC_VISIBLE
69 int execlpe (const char *__file, const char *, ...);
70 #endif
71 int execv (const char *__path, char * const __argv[]);
72 int execve (const char *__path, char * const __argv[], char * const __envp[]);
73 int execvp (const char *__file, char * const __argv[]);
74 #if __GNU_VISIBLE
75 int execvpe (const char *__file, char * const __argv[], char * const __envp[]);
76 #endif
77 #if __ATFILE_VISIBLE
78 int faccessat (int __dirfd, const char *__path, int __mode, int __flags);
79 #endif
80 #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
81 int fchdir (int __fildes);
82 #endif
83 #if __POSIX_VISIBLE >= 199309
84 int fchmod (int __fildes, mode_t __mode);
85 #endif
86 #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
87 int fchown (int __fildes, uid_t __owner, gid_t __group);
88 #endif
89 #if __ATFILE_VISIBLE
90 int fchownat (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags);
91 #endif
92 #if __POSIX_VISIBLE >= 200809
93 int fexecve (int __fd, char * const __argv[], char * const __envp[]);
94 #endif
95 pid_t fork (void);
96 long fpathconf (int __fd, int __name);
97 int fsync (int __fd);
98 #if __POSIX_VISIBLE >= 199309
99 int fdatasync (int __fd);
100 #endif
101 #if __GNU_VISIBLE
102 char * get_current_dir_name (void);
103 #endif
104 char * getcwd (char *__buf, size_t __size);
105 #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
106 int getdomainname (char *__name, size_t __len);
107 #endif
108 #if __BSD_VISIBLE
109 int getentropy (void *, size_t);
110 #endif
111 gid_t getegid (void);
112 uid_t geteuid (void);
113 gid_t getgid (void);
114 int getgroups (int __gidsetsize, gid_t __grouplist[]);
115 #if __BSD_VISIBLE || __XSI_VISIBLE >= 4
116 long gethostid (void);
117 #endif
118 char * getlogin (void);
119 #if defined(_POSIX_THREAD_SAFE_FUNCTIONS)
120 int getlogin_r (char *name, size_t namesize) ;
121 #endif
122 #if __BSD_VISIBLE || (__XSI_VISIBLE && __POSIX_VISIBLE < 200112)
123 char * getpass (const char *__prompt);
124 int getpagesize (void);
125 #endif
126 #if __BSD_VISIBLE
127 int getpeereid (int, uid_t *, gid_t *);
128 #endif
129 #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4
130 pid_t getpgid (pid_t);
131 #endif
132 pid_t getpgrp (void);
133 pid_t getpid (void);
134 pid_t getppid (void);
135 #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4
136 pid_t getsid (pid_t);
137 #endif
138 uid_t getuid (void);
139 #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
140 char * getusershell (void);
141 #endif
142 #if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809)
143 char * getwd (char *__buf);
144 #endif
145 #if __BSD_VISIBLE
146 int iruserok (unsigned long raddr, int superuser, const char *ruser, const char *luser);
147 #endif
148 int isatty (int __fildes);
149 #if __BSD_VISIBLE
150 int issetugid (void);
151 #endif
152 #if __BSD_VISIBLE || __XSI_VISIBLE >= 4 || __POSIX_VISIBLE >= 200809
153 int lchown (const char *__path, uid_t __owner, gid_t __group);
154 #endif
155 int link (const char *__path1, const char *__path2);
156 #if __ATFILE_VISIBLE
157 int linkat (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags);
158 #endif
159 #if __MISC_VISIBLE || __XSI_VISIBLE
160 int nice (int __nice_value);
161 #endif
162 #if !defined(__INSIDE_CYGWIN__)
163 off_t lseek (int __fildes, off_t __offset, int __whence);
164 #endif
165 #if __MISC_VISIBLE || __XSI_VISIBLE >= 4
166 #define F_ULOCK 0
167 #define F_LOCK 1
168 #define F_TLOCK 2
169 #define F_TEST 3
170 int lockf (int __fd, int __cmd, off_t __len);
171 #endif
172 long pathconf (const char *__path, int __name);
173 int pause (void);
174 #if __POSIX_VISIBLE >= 199506
175 int pthread_atfork (void (*)(void), void (*)(void), void (*)(void));
176 #endif
177 int pipe (int __fildes[2]);
178 #if __GNU_VISIBLE
179 int pipe2 (int __fildes[2], int flags);
180 #endif
181 #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500
182 ssize_t pread (int __fd, void *__buf, size_t __nbytes, off_t __offset);
183 ssize_t pwrite (int __fd, const void *__buf, size_t __nbytes, off_t __offset);
184 #endif
185 _READ_WRITE_RETURN_TYPE read (int __fd, void *__buf, size_t __nbyte);
186 #if __BSD_VISIBLE
187 int rresvport (int *__alport);
188 int revoke (char *__path);
189 #endif
190 int rmdir (const char *__path);
191 #if __BSD_VISIBLE
192 int ruserok (const char *rhost, int superuser, const char *ruser, const char *luser);
193 #endif
194 #if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112)
195 void * sbrk (ptrdiff_t __incr);
196 #endif
197 #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112
198 int setegid (gid_t __gid);
199 int seteuid (uid_t __uid);
200 #endif
201 int setgid (gid_t __gid);
202 #if __BSD_VISIBLE
203 int setgroups (int ngroups, const gid_t *grouplist);
204 #endif
205 #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
206 int sethostname (const char *, size_t);
207 #endif
208 int setpgid (pid_t __pid, pid_t __pgid);
209 #if __SVID_VISIBLE || __XSI_VISIBLE >= 500
210 int setpgrp (void);
211 #endif
212 #if defined(__CYGWIN__) && __BSD_VISIBLE
213 /* Stub for Linux libbsd compatibility. */
214 #define initsetproctitle(c, a, e) setproctitle_init((c), (a), (e))
215 static inline void setproctitle_init (int, char *[], char *[]) {}
217 void setproctitle (const char *, ...)
218 _ATTRIBUTE ((__format__ (__printf__, 1, 2)));
219 #endif
220 #if __BSD_VISIBLE || __XSI_VISIBLE >= 4
221 int setregid (gid_t __rgid, gid_t __egid);
222 int setreuid (uid_t __ruid, uid_t __euid);
223 #endif
224 pid_t setsid (void);
225 int setuid (uid_t __uid);
226 #if __BSD_VISIBLE || (__XSI_VISIBLE && __XSI_VISIBLE < 500)
227 void setusershell (void);
228 #endif
229 unsigned sleep (unsigned int __seconds);
230 #if __XSI_VISIBLE
231 void swab (const void *__restrict, void *__restrict, ssize_t);
232 #endif
233 long sysconf (int __name);
234 pid_t tcgetpgrp (int __fildes);
235 int tcsetpgrp (int __fildes, pid_t __pgrp_id);
236 char * ttyname (int __fildes);
237 int ttyname_r (int, char *, size_t);
238 int unlink (const char *__path);
239 #if __XSI_VISIBLE >= 500 && __POSIX_VISIBLE < 200809 || __BSD_VISIBLE
240 int usleep (useconds_t __useconds);
241 #endif
242 #if __BSD_VISIBLE
243 int vhangup (void);
244 #endif
245 _READ_WRITE_RETURN_TYPE write (int __fd, const void *__buf, size_t __nbyte);
247 #ifdef __CYGWIN__
248 # define __UNISTD_GETOPT__
249 # include <getopt.h>
250 # undef __UNISTD_GETOPT__
251 #else
252 extern char *optarg; /* getopt(3) external variables */
253 extern int optind, opterr, optopt;
254 int getopt(int, char * const [], const char *);
255 extern int optreset; /* getopt(3) external variable */
256 #endif
258 #if __BSD_VISIBLE || (__XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200809)
259 pid_t vfork (void);
260 #endif
262 #ifdef _LIBC
263 /* Provide prototypes for most of the _<systemcall> names that are
264 provided in newlib for some compilers. */
265 int _close (int __fildes);
266 pid_t _fork (void);
267 pid_t _getpid (void);
268 int _isatty (int __fildes);
269 int _link (const char *__path1, const char *__path2);
270 _off_t _lseek (int __fildes, _off_t __offset, int __whence);
271 #ifdef __LARGE64_FILES
272 _off64_t _lseek64 (int __filedes, _off64_t __offset, int __whence);
273 #endif
274 _READ_WRITE_RETURN_TYPE _read (int __fd, void *__buf, size_t __nbyte);
275 void * _sbrk (ptrdiff_t __incr);
276 int _unlink (const char *__path);
277 _READ_WRITE_RETURN_TYPE _write (int __fd, const void *__buf, size_t __nbyte);
278 int _execve (const char *__path, char * const __argv[], char * const __envp[]);
279 int _getentropy (void *, size_t);
280 #endif
282 #if !defined(__INSIDE_CYGWIN__)
283 #if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500
284 int ftruncate (int __fd, off_t __length);
285 #endif
286 #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500
287 int truncate (const char *, off_t __length);
288 #endif
289 #endif
291 #if __BSD_VISIBLE || __POSIX_VISIBLE < 200112
292 int getdtablesize (void);
293 #endif
294 #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 500
295 useconds_t ualarm (useconds_t __useconds, useconds_t __interval);
296 #endif
298 #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500
299 #if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS))
300 /* winsock[2].h defines as __stdcall, and with int as 2nd arg */
301 int gethostname (char *__name, size_t __len);
302 #endif
303 #endif
305 #if __MISC_VISIBLE
306 int setdtablesize (int);
307 #endif
309 #if __BSD_VISIBLE || __XSI_VISIBLE >= 500
310 void sync (void);
311 #endif
313 #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 4
314 ssize_t readlink (const char *__restrict __path,
315 char *__restrict __buf, size_t __buflen);
316 int symlink (const char *__name1, const char *__name2);
317 #endif
318 #if __ATFILE_VISIBLE
319 ssize_t readlinkat (int __dirfd1, const char *__restrict __path,
320 char *__restrict __buf, size_t __buflen);
321 int symlinkat (const char *, int, const char *);
322 int unlinkat (int, const char *, int);
323 #endif
325 #define F_OK 0
326 #define R_OK 4
327 #define W_OK 2
328 #define X_OK 1
330 # define SEEK_SET 0
331 # define SEEK_CUR 1
332 # define SEEK_END 2
333 #if __GNU_VISIBLE
334 # define SEEK_DATA 3
335 # define SEEK_HOLE 4
336 #endif
338 #include <sys/features.h>
340 #define STDIN_FILENO 0 /* standard input file descriptor */
341 #define STDOUT_FILENO 1 /* standard output file descriptor */
342 #define STDERR_FILENO 2 /* standard error file descriptor */
345 * sysconf values per IEEE Std 1003.1, 2008 Edition
348 #define _SC_ARG_MAX 0
349 #define _SC_CHILD_MAX 1
350 #define _SC_CLK_TCK 2
351 #define _SC_NGROUPS_MAX 3
352 #define _SC_OPEN_MAX 4
353 #define _SC_JOB_CONTROL 5
354 #define _SC_SAVED_IDS 6
355 #define _SC_VERSION 7
356 #define _SC_PAGESIZE 8
357 #define _SC_PAGE_SIZE _SC_PAGESIZE
358 /* These are non-POSIX values we accidentally introduced in 2000 without
359 guarding them. Keeping them unguarded for backward compatibility. */
360 #define _SC_NPROCESSORS_CONF 9
361 #define _SC_NPROCESSORS_ONLN 10
362 #define _SC_PHYS_PAGES 11
363 #define _SC_AVPHYS_PAGES 12
364 /* End of non-POSIX values. */
365 #define _SC_MQ_OPEN_MAX 13
366 #define _SC_MQ_PRIO_MAX 14
367 #define _SC_RTSIG_MAX 15
368 #define _SC_SEM_NSEMS_MAX 16
369 #define _SC_SEM_VALUE_MAX 17
370 #define _SC_SIGQUEUE_MAX 18
371 #define _SC_TIMER_MAX 19
372 #define _SC_TZNAME_MAX 20
373 #define _SC_ASYNCHRONOUS_IO 21
374 #define _SC_FSYNC 22
375 #define _SC_MAPPED_FILES 23
376 #define _SC_MEMLOCK 24
377 #define _SC_MEMLOCK_RANGE 25
378 #define _SC_MEMORY_PROTECTION 26
379 #define _SC_MESSAGE_PASSING 27
380 #define _SC_PRIORITIZED_IO 28
381 #define _SC_REALTIME_SIGNALS 29
382 #define _SC_SEMAPHORES 30
383 #define _SC_SHARED_MEMORY_OBJECTS 31
384 #define _SC_SYNCHRONIZED_IO 32
385 #define _SC_TIMERS 33
386 #define _SC_AIO_LISTIO_MAX 34
387 #define _SC_AIO_MAX 35
388 #define _SC_AIO_PRIO_DELTA_MAX 36
389 #define _SC_DELAYTIMER_MAX 37
390 #define _SC_THREAD_KEYS_MAX 38
391 #define _SC_THREAD_STACK_MIN 39
392 #define _SC_THREAD_THREADS_MAX 40
393 #define _SC_TTY_NAME_MAX 41
394 #define _SC_THREADS 42
395 #define _SC_THREAD_ATTR_STACKADDR 43
396 #define _SC_THREAD_ATTR_STACKSIZE 44
397 #define _SC_THREAD_PRIORITY_SCHEDULING 45
398 #define _SC_THREAD_PRIO_INHERIT 46
399 /* _SC_THREAD_PRIO_PROTECT was _SC_THREAD_PRIO_CEILING in early drafts */
400 #define _SC_THREAD_PRIO_PROTECT 47
401 #define _SC_THREAD_PRIO_CEILING _SC_THREAD_PRIO_PROTECT
402 #define _SC_THREAD_PROCESS_SHARED 48
403 #define _SC_THREAD_SAFE_FUNCTIONS 49
404 #define _SC_GETGR_R_SIZE_MAX 50
405 #define _SC_GETPW_R_SIZE_MAX 51
406 #define _SC_LOGIN_NAME_MAX 52
407 #define _SC_THREAD_DESTRUCTOR_ITERATIONS 53
408 #define _SC_ADVISORY_INFO 54
409 #define _SC_ATEXIT_MAX 55
410 #define _SC_BARRIERS 56
411 #define _SC_BC_BASE_MAX 57
412 #define _SC_BC_DIM_MAX 58
413 #define _SC_BC_SCALE_MAX 59
414 #define _SC_BC_STRING_MAX 60
415 #define _SC_CLOCK_SELECTION 61
416 #define _SC_COLL_WEIGHTS_MAX 62
417 #define _SC_CPUTIME 63
418 #define _SC_EXPR_NEST_MAX 64
419 #define _SC_HOST_NAME_MAX 65
420 #define _SC_IOV_MAX 66
421 #define _SC_IPV6 67
422 #define _SC_LINE_MAX 68
423 #define _SC_MONOTONIC_CLOCK 69
424 #define _SC_RAW_SOCKETS 70
425 #define _SC_READER_WRITER_LOCKS 71
426 #define _SC_REGEXP 72
427 #define _SC_RE_DUP_MAX 73
428 #define _SC_SHELL 74
429 #define _SC_SPAWN 75
430 #define _SC_SPIN_LOCKS 76
431 #define _SC_SPORADIC_SERVER 77
432 #define _SC_SS_REPL_MAX 78
433 #define _SC_SYMLOOP_MAX 79
434 #define _SC_THREAD_CPUTIME 80
435 #define _SC_THREAD_SPORADIC_SERVER 81
436 #define _SC_TIMEOUTS 82
437 #define _SC_TRACE 83
438 #define _SC_TRACE_EVENT_FILTER 84
439 #define _SC_TRACE_EVENT_NAME_MAX 85
440 #define _SC_TRACE_INHERIT 86
441 #define _SC_TRACE_LOG 87
442 #define _SC_TRACE_NAME_MAX 88
443 #define _SC_TRACE_SYS_MAX 89
444 #define _SC_TRACE_USER_EVENT_MAX 90
445 #define _SC_TYPED_MEMORY_OBJECTS 91
446 #define _SC_V7_ILP32_OFF32 92
447 #define _SC_V6_ILP32_OFF32 _SC_V7_ILP32_OFF32
448 #define _SC_XBS5_ILP32_OFF32 _SC_V7_ILP32_OFF32
449 #define _SC_V7_ILP32_OFFBIG 93
450 #define _SC_V6_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG
451 #define _SC_XBS5_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG
452 #define _SC_V7_LP64_OFF64 94
453 #define _SC_V6_LP64_OFF64 _SC_V7_LP64_OFF64
454 #define _SC_XBS5_LP64_OFF64 _SC_V7_LP64_OFF64
455 #define _SC_V7_LPBIG_OFFBIG 95
456 #define _SC_V6_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG
457 #define _SC_XBS5_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG
458 #define _SC_XOPEN_CRYPT 96
459 #define _SC_XOPEN_ENH_I18N 97
460 #define _SC_XOPEN_LEGACY 98
461 #define _SC_XOPEN_REALTIME 99
462 #define _SC_STREAM_MAX 100
463 #define _SC_PRIORITY_SCHEDULING 101
464 #define _SC_XOPEN_REALTIME_THREADS 102
465 #define _SC_XOPEN_SHM 103
466 #define _SC_XOPEN_STREAMS 104
467 #define _SC_XOPEN_UNIX 105
468 #define _SC_XOPEN_VERSION 106
469 #define _SC_2_CHAR_TERM 107
470 #define _SC_2_C_BIND 108
471 #define _SC_2_C_DEV 109
472 #define _SC_2_FORT_DEV 110
473 #define _SC_2_FORT_RUN 111
474 #define _SC_2_LOCALEDEF 112
475 #define _SC_2_PBS 113
476 #define _SC_2_PBS_ACCOUNTING 114
477 #define _SC_2_PBS_CHECKPOINT 115
478 #define _SC_2_PBS_LOCATE 116
479 #define _SC_2_PBS_MESSAGE 117
480 #define _SC_2_PBS_TRACK 118
481 #define _SC_2_SW_DEV 119
482 #define _SC_2_UPE 120
483 #define _SC_2_VERSION 121
484 #define _SC_THREAD_ROBUST_PRIO_INHERIT 122
485 #define _SC_THREAD_ROBUST_PRIO_PROTECT 123
486 #define _SC_XOPEN_UUCP 124
487 #define _SC_LEVEL1_ICACHE_SIZE 125
488 #define _SC_LEVEL1_ICACHE_ASSOC 126
489 #define _SC_LEVEL1_ICACHE_LINESIZE 127
490 #define _SC_LEVEL1_DCACHE_SIZE 128
491 #define _SC_LEVEL1_DCACHE_ASSOC 129
492 #define _SC_LEVEL1_DCACHE_LINESIZE 130
493 #define _SC_LEVEL2_CACHE_SIZE 131
494 #define _SC_LEVEL2_CACHE_ASSOC 132
495 #define _SC_LEVEL2_CACHE_LINESIZE 133
496 #define _SC_LEVEL3_CACHE_SIZE 134
497 #define _SC_LEVEL3_CACHE_ASSOC 135
498 #define _SC_LEVEL3_CACHE_LINESIZE 136
499 #define _SC_LEVEL4_CACHE_SIZE 137
500 #define _SC_LEVEL4_CACHE_ASSOC 138
501 #define _SC_LEVEL4_CACHE_LINESIZE 139
502 #define _SC_POSIX_26_VERSION 140
505 * pathconf values per IEEE Std 1003.1, 2008 Edition
508 #define _PC_LINK_MAX 0
509 #define _PC_MAX_CANON 1
510 #define _PC_MAX_INPUT 2
511 #define _PC_NAME_MAX 3
512 #define _PC_PATH_MAX 4
513 #define _PC_PIPE_BUF 5
514 #define _PC_CHOWN_RESTRICTED 6
515 #define _PC_NO_TRUNC 7
516 #define _PC_VDISABLE 8
517 #define _PC_ASYNC_IO 9
518 #define _PC_PRIO_IO 10
519 #define _PC_SYNC_IO 11
520 #define _PC_FILESIZEBITS 12
521 #define _PC_2_SYMLINKS 13
522 #define _PC_SYMLINK_MAX 14
523 #define _PC_ALLOC_SIZE_MIN 15
524 #define _PC_REC_INCR_XFER_SIZE 16
525 #define _PC_REC_MAX_XFER_SIZE 17
526 #define _PC_REC_MIN_XFER_SIZE 18
527 #define _PC_REC_XFER_ALIGN 19
528 #define _PC_TIMESTAMP_RESOLUTION 20
529 #ifdef __CYGWIN__
530 /* Ask for POSIX permission bits support. */
531 #define _PC_POSIX_PERMISSIONS 90
532 /* Ask for full POSIX permission support including uid/gid settings. */
533 #define _PC_POSIX_SECURITY 91
534 #define _PC_CASE_INSENSITIVE 92
535 #endif
538 * confstr values per IEEE Std 1003.1, 2004 Edition
541 /* Only defined on Cygwin and RTEMS for now. */
542 #if defined (__CYGWIN__) || defined(__rtems__)
543 #define _CS_PATH 0
544 #define _CS_POSIX_V7_ILP32_OFF32_CFLAGS 1
545 #define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS
546 #define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS
547 #define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS 2
548 #define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
549 #define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
550 #define _CS_POSIX_V7_ILP32_OFF32_LIBS 3
551 #define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS
552 #define _CS_XBS5_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS
553 #define _CS_XBS5_ILP32_OFF32_LINTFLAGS 4
554 #define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS 5
555 #define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
556 #define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
557 #define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS 6
558 #define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
559 #define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
560 #define _CS_POSIX_V7_ILP32_OFFBIG_LIBS 7
561 #define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS
562 #define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS
563 #define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 8
564 #define _CS_POSIX_V7_LP64_OFF64_CFLAGS 9
565 #define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS
566 #define _CS_XBS5_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS
567 #define _CS_POSIX_V7_LP64_OFF64_LDFLAGS 10
568 #define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS
569 #define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS
570 #define _CS_POSIX_V7_LP64_OFF64_LIBS 11
571 #define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS
572 #define _CS_XBS5_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS
573 #define _CS_XBS5_LP64_OFF64_LINTFLAGS 12
574 #define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS 13
575 #define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
576 #define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
577 #define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS 14
578 #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
579 #define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
580 #define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS 15
581 #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
582 #define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
583 #define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 16
584 #define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS 17
585 #define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
586 #define _CS_XBS5_WIDTH_RESTRICTED_ENVS _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
587 #define _CS_POSIX_V7_THREADS_CFLAGS 18
588 #define _CS_POSIX_V7_THREADS_LDFLAGS 19
589 #define _CS_V7_ENV 20
590 #define _CS_V6_ENV _CS_V7_ENV
591 #define _CS_LFS_CFLAGS 21
592 #define _CS_LFS_LDFLAGS 22
593 #define _CS_LFS_LIBS 23
594 #define _CS_LFS_LINTFLAGS 24
595 #endif
597 #ifdef __cplusplus
599 #endif
601 #if __SSP_FORTIFY_LEVEL > 0
602 #include <ssp/unistd.h>
603 #endif
605 #endif /* _SYS_UNISTD_H */