unistd.h 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945
  1. /* IBM_PROLOG_BEGIN_TAG */
  2. /* This is an automatically generated prolog. */
  3. /* */
  4. /* bos53H src/bos/usr/include/unistd.h 1.38.4.46 */
  5. /* */
  6. /* Licensed Materials - Property of IBM */
  7. /* */
  8. /* (C) COPYRIGHT International Business Machines Corp. 1985,1995 */
  9. /* All Rights Reserved */
  10. /* */
  11. /* US Government Users Restricted Rights - Use, duplication or */
  12. /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */
  13. /* */
  14. /* IBM_PROLOG_END_TAG */
  15. /* @(#)82 1.38.4.46 src/bos/usr/include/unistd.h, incstd, bos53H, h2006_17B8 4/25/06 11:53:09 */
  16. /*
  17. * COMPONENT_NAME: (INCSTD) Standard Include Files
  18. *
  19. * FUNCTIONS:
  20. *
  21. * ORIGINS: 3 27
  22. *
  23. * (C) COPYRIGHT International Business Machines Corp. 1985, 2006
  24. * All Rights Reserved
  25. * Licensed Materials - Property of IBM
  26. *
  27. * US Government Users Restricted Rights - Use, duplication or
  28. * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  29. *
  30. * Copyright (c) 1984 AT&T
  31. * All Rights Reserved
  32. *
  33. * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
  34. * The copyright notice above does not evidence any
  35. * actual or intended publication of such source code.
  36. */
  37. #ifndef _H_UNISTD
  38. #define _H_UNISTD
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42. #ifndef _H_STANDARDS
  43. #include <standards.h>
  44. #endif
  45. #include <strict_stdtypes.h>
  46. #ifndef _H_TYPES
  47. #include <sys/types.h>
  48. #endif
  49. #include <end_strict_stdtypes.h>
  50. #ifndef _H_ACCESS
  51. #include <sys/access.h> /* for the "access" function */
  52. #endif
  53. /*
  54. * POSIX requires that certain values be included in unistd.h. It also
  55. * requires that when _POSIX_SOURCE is defined only those standard
  56. * specific values are present. This header includes all the POSIX
  57. * required entries.
  58. */
  59. #ifdef _POSIX_SOURCE
  60. #ifdef _LARGE_FILES
  61. #define lseek lseek64
  62. #endif
  63. /* Symbolic constants for the "lseek" function: */
  64. #ifndef SEEK_SET
  65. #define SEEK_SET 0 /* Set file pointer to "offset" */
  66. #define SEEK_CUR 1 /* Set file pointer to current plus "offset" */
  67. #define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
  68. #endif /* SEEK_SET */
  69. #ifdef _NO_PROTO
  70. #ifndef _KERNEL
  71. extern int access();
  72. extern unsigned int alarm();
  73. extern int chdir();
  74. extern int chown();
  75. extern int close();
  76. extern char *ctermid();
  77. extern int dup();
  78. extern int dup2();
  79. extern int execl();
  80. extern int execv();
  81. extern int execle();
  82. extern int execve();
  83. extern int execlp();
  84. extern int execvp();
  85. extern void _exit();
  86. extern pid_t fork();
  87. extern long fpathconf();
  88. extern char *getcwd();
  89. extern gid_t getegid();
  90. extern uid_t geteuid();
  91. extern gid_t getgid();
  92. extern int getgroups();
  93. extern char *getlogin();
  94. extern pid_t getpgrp();
  95. extern pid_t getpid();
  96. extern pid_t getppid();
  97. extern uid_t getuid();
  98. extern int isatty();
  99. extern int link();
  100. extern off_t lseek();
  101. extern long pathconf();
  102. extern int pause();
  103. extern int pipe();
  104. #if defined(_XOPEN_SOURCE) && ( _XOPEN_SOURCE >= 500 )
  105. extern int pthread_atfork();
  106. #endif
  107. extern int read();
  108. extern int rmdir();
  109. extern int setgid();
  110. extern int setpgid();
  111. extern int setsid();
  112. extern int setuid();
  113. extern unsigned int sleep();
  114. extern long sysconf();
  115. extern pid_t tcgetpgrp();
  116. extern int tcsetpgrp();
  117. extern char *ttyname();
  118. extern int unlink();
  119. extern int write();
  120. #endif /* !_KERNEL */
  121. #else /* POSIX required prototypes */
  122. #ifndef _KERNEL
  123. extern int access(const char *, int);
  124. extern unsigned int alarm(unsigned int);
  125. extern int chdir(const char *);
  126. extern int chown(const char *, uid_t, gid_t);
  127. extern int close(int);
  128. extern char *ctermid(char *);
  129. extern int dup(int);
  130. extern int dup2(int, int);
  131. extern int execl(const char *, const char *, ...);
  132. extern int execv(const char *, char *const []);
  133. extern int execle(const char *, const char *, ...);
  134. extern int execve(const char *, char *const [], char *const []);
  135. extern int execlp(const char *, const char *, ...);
  136. extern int execvp(const char *, char *const []);
  137. extern void _exit(int);
  138. extern pid_t fork(void);
  139. extern long fpathconf(int, int);
  140. extern char *getcwd(char *, size_t);
  141. extern gid_t getegid(void);
  142. extern uid_t geteuid(void);
  143. extern gid_t getgid(void);
  144. extern int getgroups(int, gid_t []);
  145. extern char *getlogin(void);
  146. #ifndef _BSD
  147. extern pid_t getpgrp(void);
  148. #endif /* _BSD */
  149. extern pid_t getpid(void);
  150. extern pid_t getppid(void);
  151. extern uid_t getuid(void);
  152. extern int isatty(int);
  153. extern int link(const char *, const char *);
  154. extern off_t lseek(int, off_t, int);
  155. #ifdef _LARGE_FILE_API
  156. extern off64_t lseek64(int, off64_t, int);
  157. #endif
  158. extern long pathconf(const char *, int);
  159. extern int pause(void);
  160. extern int pipe(int []);
  161. #if defined(_XOPEN_SOURCE) && ( _XOPEN_SOURCE >= 500 )
  162. extern int pthread_atfork(void (*)(void), void (*)(void), void (*)(void));
  163. #endif
  164. extern ssize_t read(int, void *, size_t);
  165. extern int rmdir(const char *);
  166. extern int setgid(gid_t);
  167. extern int setpgid(pid_t, pid_t);
  168. extern pid_t setsid(void);
  169. extern int setuid(uid_t);
  170. extern unsigned int sleep(unsigned int);
  171. extern long sysconf(int);
  172. extern pid_t tcgetpgrp(int);
  173. extern int tcsetpgrp(int, pid_t);
  174. extern char *ttyname(int);
  175. extern int unlink(const char *);
  176. extern ssize_t write(int, const void *, size_t);
  177. #endif /* !_KERNEL */
  178. #endif /* !_NO_PROTO */
  179. #define STDIN_FILENO 0
  180. #define STDOUT_FILENO 1
  181. #define STDERR_FILENO 2
  182. #define _POSIX_JOB_CONTROL 1
  183. #define _POSIX_SAVED_IDS 1
  184. #define _POSIX_VERSION 200112L
  185. #define _POSIX2_VERSION 200112L
  186. #define _POSIX2_C_VERSION 200112L
  187. #ifdef _XOPEN_SOURCE
  188. #define _XOPEN_VERSION 600
  189. #define _XOPEN_XCU_VERSION 4
  190. #define _XOPEN_XPG3 1
  191. #define _XOPEN_XPG4 1
  192. #define _XOPEN_UNIX 1
  193. #define _XOPEN_REALTIME (-1)
  194. #define _XOPEN_REALTIME_THREADS (-1)
  195. #if (_XOPEN_SOURCE >= 600)
  196. #define _XOPEN_STREAMS 1
  197. #endif
  198. #define _XBS5_ILP32_OFF32 1
  199. #define _XBS5_ILP32_OFFBIG 1
  200. #define _XBS5_LP64_OFF64 1
  201. #define _XBS5_LPBIG_OFFBIG 1
  202. #define _POSIX2_C_BIND 200112L
  203. #define _POSIX2_C_DEV 200112L
  204. #define _POSIX2_CHAR_TERM 1
  205. #define _POSIX2_LOCALEDEF 200112L
  206. #define _POSIX2_UPE 200112L
  207. #define _POSIX2_FORT_DEV (-1)
  208. #define _POSIX2_FORT_RUN (-1)
  209. #define _POSIX2_SW_DEV (-1)
  210. #if (_POSIX_C_SOURCE >= 200112L)
  211. #define _POSIX_REGEXP 1
  212. #define _POSIX_SHELL 1
  213. #define _POSIX2_PBS (-1)
  214. #define _POSIX2_PBS_ACCOUNTING (-1)
  215. #define _POSIX2_PBS_CHECKPOINT (-1)
  216. #define _POSIX2_PBS_LOCATE (-1)
  217. #define _POSIX2_PBS_MESSAGE (-1)
  218. #define _POSIX2_PBS_TRACK (-1)
  219. #define _V6_ILP32_OFF32 1
  220. #define _V6_ILP32_OFFBIG 1
  221. #define _V6_LP64_OFF64 1
  222. #define _V6_LPBIG_OFFBIG 1
  223. #define _POSIX_ADVISORY_INFO 200112L
  224. #define _POSIX_BARRIERS 200112L
  225. #define _POSIX_CLOCK_SELECTION 200112L
  226. #define _POSIX_CPUTIME 200112L
  227. #define _POSIX_MONOTONIC_CLOCK 200112L
  228. #ifdef _POSIX_RAW_SOCKETS
  229. #undef _POSIX_RAW_SOCKETS
  230. #endif
  231. #define _POSIX_SPAWN 200112L
  232. #define _POSIX_SPIN_LOCKS 200112L
  233. #define _POSIX_SPORADIC_SERVER (-1)
  234. #define _POSIX_THREAD_CPUTIME 200112L
  235. #define _POSIX_THREAD_SPORADIC_SERVER (-1)
  236. #define _POSIX_TIMEOUTS 200112L
  237. #define _POSIX_TRACE (-1)
  238. #define _POSIX_TRACE_EVENT_FILTER (-1)
  239. #define _POSIX_TRACE_INHERIT (-1)
  240. #define _POSIX_TRACE_LOG (-1)
  241. #define _POSIX_TYPED_MEMORY_OBJECTS (-1)
  242. #endif /* _POSIX_C_SOURCE >= 200112L */
  243. #define _XOPEN_CRYPT 1
  244. #define _XOPEN_SHM 1
  245. #define _XOPEN_ENH_I18N 1
  246. #define _XOPEN_LEGACY (-1)
  247. #ifndef __64BIT__
  248. #define _UNIX_ABI (-1)
  249. #define _UNIX_ABI_IA64 (-1)
  250. #define _UNIX_ABI_BIG_ENDIAN (-1)
  251. #define _UNIX_ABI_LITTLE_ENDIAN (-1)
  252. #endif /* __64BIT__ */
  253. extern char *optarg;
  254. extern int optind, opterr, optopt;
  255. #ifdef _NO_PROTO
  256. extern size_t confstr();
  257. extern char *crypt();
  258. extern void encrypt();
  259. extern int fsync();
  260. extern int getopt();
  261. extern int nice();
  262. extern void swab();
  263. #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE<200112L) || defined(_ALL_SOURCE)
  264. extern char *getpass();
  265. extern int chroot();
  266. #endif
  267. #else
  268. extern size_t confstr(int, char*, size_t);
  269. extern char *crypt(const char *, const char *);
  270. extern void encrypt(char *, int);
  271. extern int fsync(int);
  272. extern int getopt(int, char* const*, const char*);
  273. extern int nice(int);
  274. extern void swab(const void *, void *, ssize_t);
  275. extern int fdatasync(int);
  276. #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE<200112L) || defined(_ALL_SOURCE)
  277. extern char *getpass(const char *);
  278. extern int chroot(const char *);
  279. #endif
  280. #endif
  281. #endif /* _XOPEN _SOURCE */
  282. /* Threads options for 1003.1c and XPG UNIX98 */
  283. #define _POSIX_THREADS 200112L
  284. #define _POSIX_THREAD_ATTR_STACKADDR 200112L
  285. #define _POSIX_THREAD_ATTR_STACKSIZE 200112L
  286. #define _POSIX_THREAD_PROCESS_SHARED 200112L
  287. #define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
  288. #ifdef _ALL_SOURCE
  289. #define _POSIX_REENTRANT_FUNCTIONS _POSIX_THREAD_SAFE_FUNCTIONS
  290. #endif
  291. /* Realtime threads options for 1003.1c and XPG UNIX98 */
  292. #define _POSIX_THREAD_PRIORITY_SCHEDULING (-1)
  293. #define _POSIX_THREAD_PRIO_INHERIT (-1)
  294. #define _POSIX_THREAD_PRIO_PROTECT (-1)
  295. #undef _POSIX_THREAD_FORKALL
  296. /* Realtime options for 1003.1c and XPG UNIX98 */
  297. #define _POSIX_ASYNCHRONOUS_IO 200112L
  298. #define _POSIX_FSYNC 200112L
  299. #define _POSIX_MAPPED_FILES 200112L
  300. #define _POSIX_MEMLOCK 200112L
  301. #define _POSIX_MEMLOCK_RANGE 200112L
  302. #define _POSIX_MEMORY_PROTECTION 200112L
  303. #define _POSIX_MESSAGE_PASSING 200112L
  304. #define _POSIX_PRIORITIZED_IO 200112L
  305. #define _POSIX_PRIORITY_SCHEDULING 200112L
  306. #define _POSIX_REALTIME_SIGNALS 200112L
  307. #define _POSIX_SEMAPHORES 200112L
  308. #define _POSIX_SHARED_MEMORY_OBJECTS 200112L
  309. #define _POSIX_SYNCHRONIZED_IO 200112L
  310. #define _POSIX_TIMERS 200112L
  311. #define _POSIX_ASYNC_IO (-1)
  312. #undef _POSIX_SYNC_IO
  313. #define _POSIX_PRIO_IO (-1)
  314. #define _POSIX_CHOWN_RESTRICTED 0
  315. #define _POSIX_VDISABLE 0xFF
  316. #define _POSIX_NO_TRUNC 0
  317. /* UNIX03 and POSIX01 */
  318. /* Always enabled */
  319. #define _POSIX_IPV6 200112L
  320. #define _POSIX_RAW_SOCKETS 200112L
  321. #ifndef NULL
  322. #define NULL 0
  323. #endif
  324. #if (_POSIX_C_SOURCE >= 200112L)
  325. #define _POSIX_READER_WRITER_LOCKS 200112L
  326. #endif
  327. /* arguments for the confstr() function */
  328. #define _CS_PATH 1
  329. /* compile,link,lib,lint flags for 32bit, no_LARGE_FILES system */
  330. #define _CS_XBS5_ILP32_OFF32_CFLAGS 2
  331. #define _CS_XBS5_ILP32_OFF32_LDFLAGS 3
  332. #define _CS_XBS5_ILP32_OFF32_LIBS 4
  333. #define _CS_XBS5_ILP32_OFF32_LINTFLAGS 5
  334. /* compile,link,lib,lint flags for 32bit, _LARGE_FILES system */
  335. #define _CS_XBS5_ILP32_OFFBIG_CFLAGS 6
  336. #define _CS_XBS5_ILP32_OFFBIG_LDFLAGS 7
  337. #define _CS_XBS5_ILP32_OFFBIG_LIBS 8
  338. #define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 9
  339. /* compile,link,lib,lint flags for LP64 64bit system */
  340. #define _CS_XBS5_LP64_OFF64_CFLAGS 10
  341. #define _CS_XBS5_LP64_OFF64_LDFLAGS 11
  342. #define _CS_XBS5_LP64_OFF64_LIBS 12
  343. #define _CS_XBS5_LP64_OFF64_LINTFLAGS 13
  344. /* compile,link,lib,lint flags for ILP64 64bit system */
  345. /* AIX does not currently support this */
  346. #define _CS_XBS5_LPBIG_OFFBIG_CFLAGS 14
  347. #define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS 15
  348. #define _CS_XBS5_LPBIG_OFFBIG_LIBS 16
  349. #define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 17
  350. #define _CS_AIX_BOOTDEV 24
  351. #define _CS_AIX_MODEL_CODE 25
  352. #define _CS_AIX_ARCHITECTURE 26
  353. #define _CS_AIX_MODEL_CLASS 40
  354. #if (_POSIX_C_SOURCE >= 200112L)
  355. #define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 27
  356. #define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 28
  357. #define _CS_POSIX_V6_ILP32_OFF32_LIBS 29
  358. #define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 30
  359. #define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 31
  360. #define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 32
  361. #define _CS_POSIX_V6_LP64_OFF64_CFLAGS 33
  362. #define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 34
  363. #define _CS_POSIX_V6_LP64_OFF64_LIBS 35
  364. #define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 36
  365. #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 37
  366. #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 38
  367. #define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 39
  368. #endif
  369. /* Values for the above */
  370. #define _CSPATH "/usr/bin:/usr/vac/bin"
  371. /* ILP32_OFF32 */
  372. #define _CSPOSIX_V6_ILP32_OFF32_CFLAGS "-q32"
  373. #define _CSXBS5_ILP32_OFF32_CFLAGS _CSPOSIX_V6_ILP32_OFF32_CFLAGS
  374. #ifdef __ia64
  375. #define _CSXBS5_ILP32_OFF32_LDFLAGS ""
  376. #else /* POWER */
  377. #define _CSPOSIX_V6_ILP32_OFF32_LDFLAGS "-b32"
  378. #define _CSXBS5_ILP32_OFF32_LDFLAGS _CSPOSIX_V6_ILP32_OFF32_LDFLAGS
  379. #endif
  380. #define _CSPOSIX_V6_ILP32_OFF32_LIBS "-lc -lpthread -lm"
  381. #define _CSXBS5_ILP32_OFF32_LIBS _CSPOSIX_V6_ILP32_OFF32_LIBS
  382. #define _CSXBS5_ILP32_OFF32_LINTFLAGS ""
  383. /* ILP32_OFFOFFBIG */
  384. #define _CSPOSIX_V6_ILP32_OFFBIG_CFLAGS "-q32 -D_LARGE_FILES -qlonglong"
  385. #define _CSXBS5_ILP32_OFFBIG_CFLAGS _CSPOSIX_V6_ILP32_OFFBIG_CFLAGS
  386. #ifdef __ia64
  387. #define _CSXBS5_ILP32_OFFBIG_LDFLAGS ""
  388. #else /* POWER */
  389. #define _CSPOSIX_V6_ILP32_OFFBIG_LDFLAGS "-b32"
  390. #define _CSXBS5_ILP32_OFFBIG_LDFLAGS _CSPOSIX_V6_ILP32_OFFBIG_LDFLAGS
  391. #endif
  392. #define _CSPOSIX_V6_ILP32_OFFBIG_LIBS "-lc -lpthread -lm"
  393. #define _CSXBS5_ILP32_OFFBIG_LIBS _CSPOSIX_V6_ILP32_OFFBIG_LIBS
  394. #define _CSXBS5_ILP32_OFFBIG_LINTFLAGS "-D_LARGE_FILES -qlonglong"
  395. /* LP64_OFF64 */
  396. #define _CSPOSIX_V6_LP64_OFF64_CFLAGS "-q64"
  397. #define _CSXBS5_LP64_OFF64_CFLAGS _CSPOSIX_V6_LP64_OFF64_CFLAGS
  398. #ifdef __ia64
  399. #define _CSXBS5_LP64_OFF64_LDFLAGS ""
  400. #else /* POWER */
  401. #define _CSPOSIX_V6_LP64_OFF64_LDFLAGS "-b64"
  402. #define _CSXBS5_LP64_OFF64_LDFLAGS _CSPOSIX_V6_LP64_OFF64_LDFLAGS
  403. #endif
  404. #define _CSPOSIX_V6_LP64_OFF64_LIBS "-lc -lpthread -lm"
  405. #define _CSXBS5_LP64_OFF64_LIBS _CSPOSIX_V6_LP64_OFF64_LIBS
  406. #define _CSXBS5_LP64_OFF64_LINTFLAGS "-D__64BIT__"
  407. /* LPBIG_OFFBIG */
  408. #define _CSPOSIX_V6_LPBIG_OFFBIG_CFLAGS "-q64"
  409. #define _CSXBS5_LPBIG_OFFBIG_CFLAGS _CSPOSIX_V6_LPBIG_OFFBIG_CFLAGS
  410. #ifdef __ia64
  411. #define _CSXBS5_LPBIG_OFFBIG_LDFLAGS ""
  412. #else /* POWER */
  413. #define _CSPOSIX_V6_LPBIG_OFFBIG_LDFLAGS "-b64"
  414. #define _CSXBS5_LPBIG_OFFBIG_LDFLAGS _CSPOSIX_V6_LPBIG_OFFBIG_LDFLAGS
  415. #endif
  416. #define _CSPOSIX_V6_LPBIG_OFFBIG_LIBS "-lc -lpthread -lm"
  417. #define _CSXBS5_LPBIG_OFFBIG_LIBS _CSPOSIX_V6_LPBIG_OFFBIG_LIBS
  418. #define _CSXBS5_LPBIG_OFFBIG_LINTFLAGS "-D__64BIT__"
  419. #if (_POSIX_C_SOURCE >= 200112L)
  420. #define _CSPOSIX_V6_WIDTH_RESTRICTED_ENVS \
  421. "POSIX_V6_ILP32_OFF32\n" \
  422. "POSIX_V6_ILP32_OFFBIG\n" \
  423. "POSIX_V6_LP64_OFF64\n" \
  424. "POSIX_V6_LPBIG_OFFBIG"
  425. #endif
  426. /* arguments for the pathconf() function */
  427. #define _PC_CHOWN_RESTRICTED 10
  428. #define _PC_LINK_MAX 11
  429. #define _PC_MAX_CANON 12
  430. #define _PC_MAX_INPUT 13
  431. #define _PC_NAME_MAX 14
  432. #define _PC_NO_TRUNC 15
  433. #define _PC_PATH_MAX 16
  434. #define _PC_PIPE_BUF 17
  435. #define _PC_VDISABLE 18
  436. #define _PC_ASYNC_IO 19
  437. #define _PC_SYNC_IO 20
  438. #define _PC_PRIO_IO 21
  439. #define _PC_FILESIZEBITS 22 /* # bits needed to hold offset */
  440. #define _PC_AIX_DISK_PARTITION 23
  441. #define _PC_AIX_DISK_SIZE 24
  442. #if (_POSIX_C_SOURCE >= 200112L)
  443. #define _PC_SYMLINK_MAX 25
  444. #define _PC_ALLOC_SIZE_MIN 26
  445. #define _PC_REC_INCR_XFER_SIZE 27
  446. #define _PC_REC_MAX_XFER_SIZE 28
  447. #define _PC_REC_MIN_XFER_SIZE 29
  448. #define _PC_REC_XFER_ALIGN 30
  449. #define _PC_2_SYMLINKS 31
  450. #endif
  451. /* arguments for the sysconf() function, the defined numbers are used as
  452. * array index in sysconf().
  453. *
  454. * POSIX.1(1990), Table 4-2
  455. */
  456. #define _SC_ARG_MAX 0
  457. #define _SC_CHILD_MAX 1
  458. #define _SC_CLK_TCK 2
  459. #define _SC_NGROUPS_MAX 3
  460. #define _SC_OPEN_MAX 4
  461. #define _SC_STREAM_MAX 5
  462. #define _SC_TZNAME_MAX 6
  463. #define _SC_JOB_CONTROL 7
  464. #define _SC_SAVED_IDS 8
  465. #define _SC_VERSION 9
  466. /* POSIX.1(1990), Table 2-3, required by command getconf */
  467. #define _SC_POSIX_ARG_MAX 10
  468. #define _SC_POSIX_CHILD_MAX 11
  469. #define _SC_POSIX_LINK_MAX 12
  470. #define _SC_POSIX_MAX_CANON 13
  471. #define _SC_POSIX_MAX_INPUT 14
  472. #define _SC_POSIX_NAME_MAX 15
  473. #define _SC_POSIX_NGROUPS_MAX 16
  474. #define _SC_POSIX_OPEN_MAX 17
  475. #define _SC_POSIX_PATH_MAX 18
  476. #define _SC_POSIX_PIPE_BUF 19
  477. #define _SC_POSIX_SSIZE_MAX 20
  478. #define _SC_POSIX_STREAM_MAX 21
  479. #define _SC_POSIX_TZNAME_MAX 22
  480. /* POSIX.2 (Draft 10), Table 41) */
  481. #define _SC_BC_BASE_MAX 23
  482. #define _SC_BC_DIM_MAX 24
  483. #define _SC_BC_SCALE_MAX 25
  484. #define _SC_BC_STRING_MAX 26
  485. #define _SC_EQUIV_CLASS_MAX 27
  486. #define _SC_EXPR_NEST_MAX 28
  487. #define _SC_LINE_MAX 29
  488. #define _SC_RE_DUP_MAX 30
  489. #define _SC_2_VERSION 31
  490. #define _SC_2_C_DEV 32
  491. #define _SC_2_FORT_DEV 33
  492. #define _SC_2_FORT_RUN 34
  493. #define _SC_2_LOCALEDEF 35
  494. #define _SC_2_SW_DEV 36
  495. /* POSIX.2 (Draft 10), Table 13) */
  496. #define _SC_POSIX2_BC_BASE_MAX 37
  497. #define _SC_POSIX2_BC_DIM_MAX 38
  498. #define _SC_POSIX2_BC_SCALE_MAX 39
  499. #define _SC_POSIX2_BC_STRING_MAX 40
  500. #define _SC_POSIX2_EQUIV_CLASS_MAX 41
  501. #define _SC_POSIX2_EXPR_NEST_MAX 42
  502. #define _SC_POSIX2_LINE_MAX 43
  503. #define _SC_POSIX2_RE_DUP_MAX 44
  504. #define _SC_PASS_MAX 45
  505. #define _SC_XOPEN_VERSION 46
  506. #define _SC_ATEXIT_MAX 47
  507. #if _XOPEN_SOURCE_EXTENDED==1
  508. #define _SC_PAGE_SIZE 48
  509. #endif /* _XOPEN_SOURCE_EXTENDED */
  510. #define _SC_AES_OS_VERSION 49
  511. #define _SC_COLL_WEIGHTS_MAX 50
  512. #define _SC_2_C_BIND 51
  513. #define _SC_2_C_VERSION 52
  514. #define _SC_2_UPE 53
  515. #define _SC_2_CHAR_TERM 54
  516. #define _SC_XOPEN_SHM 55
  517. #define _SC_XOPEN_CRYPT 56
  518. #define _SC_XOPEN_ENH_I18N 57
  519. #if _XOPEN_SOURCE_EXTENDED==1
  520. #define _SC_PAGESIZE _SC_PAGE_SIZE
  521. #define _SC_IOV_MAX 58
  522. #endif /* _XOPEN_SOURCE_EXTENDED */
  523. #define _SC_THREAD_SAFE_FUNCTIONS 59
  524. #define _SC_THREADS 60
  525. #define _SC_THREAD_ATTR_STACKADDR 61
  526. #define _SC_THREAD_ATTR_STACKSIZE 62
  527. #define _SC_THREAD_FORKALL 63
  528. #define _SC_THREAD_PRIORITY_SCHEDULING 64
  529. #define _SC_THREAD_PRIO_INHERIT 65
  530. #define _SC_THREAD_PRIO_PROTECT 66
  531. #define _SC_THREAD_PROCESS_SHARED 67
  532. #define _SC_THREAD_KEYS_MAX 68
  533. #define _SC_THREAD_DATAKEYS_MAX _SC_THREAD_KEYS_MAX
  534. #define _SC_THREAD_STACK_MIN 69
  535. #define _SC_THREAD_THREADS_MAX 70
  536. #ifdef _ALL_SOURCE
  537. #define _SC_NPROCESSORS_CONF 71
  538. #define _SC_NPROCESSORS_ONLN 72
  539. #endif /* _ALL_SOURCE */
  540. #define _SC_XOPEN_UNIX 73
  541. #if (_XOPEN_SOURCE >= 500)
  542. /* POSIX 1003.1c and XPG UNIX98 */
  543. /* look to defines above for meanings */
  544. #define _SC_AIO_LISTIO_MAX 75
  545. #define _SC_AIO_MAX 76
  546. #define _SC_AIO_PRIO_DELTA_MAX 77
  547. #define _SC_ASYNCHRONOUS_IO 78
  548. #define _SC_DELAYTIMER_MAX 79
  549. #define _SC_FSYNC 80
  550. #define _SC_GETGR_R_SIZE_MAX 81
  551. #define _SC_GETPW_R_SIZE_MAX 82
  552. #define _SC_LOGIN_NAME_MAX 83
  553. #define _SC_MAPPED_FILES 84
  554. #define _SC_MEMLOCK 85
  555. #define _SC_MEMLOCK_RANGE 86
  556. #define _SC_MEMORY_PROTECTION 87
  557. #define _SC_MESSAGE_PASSING 88
  558. #define _SC_MQ_OPEN_MAX 89
  559. #define _SC_MQ_PRIO_MAX 90
  560. #define _SC_PRIORITIZED_IO 91
  561. #define _SC_PRIORITY_SCHEDULING 92
  562. #define _SC_REALTIME_SIGNALS 93
  563. #define _SC_RTSIG_MAX 94
  564. #define _SC_SEMAPHORES 95
  565. #define _SC_SEM_NSEMS_MAX 96
  566. #define _SC_SEM_VALUE_MAX 97
  567. #define _SC_SHARED_MEMORY_OBJECTS 98
  568. #define _SC_SIGQUEUE_MAX 99
  569. #define _SC_SYNCHRONIZED_IO 100
  570. #define _SC_THREAD_DESTRUCTOR_ITERATIONS 101
  571. #define _SC_TIMERS 102
  572. #define _SC_TIMER_MAX 103
  573. #define _SC_TTY_NAME_MAX 104
  574. #define _SC_XBS5_ILP32_OFF32 105
  575. #define _SC_XBS5_ILP32_OFFBIG 106
  576. #define _SC_XBS5_LP64_OFF64 107
  577. #define _SC_XBS5_LPBIG_OFFBIG 108
  578. #define _SC_XOPEN_XCU_VERSION 109
  579. #define _SC_XOPEN_REALTIME 110
  580. #define _SC_XOPEN_REALTIME_THREADS 111
  581. #define _SC_XOPEN_LEGACY 112
  582. #endif /* _XOPEN_SOURCE >= 500 */
  583. #ifdef _ALL_SOURCE
  584. #define _SC_REENTRANT_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS
  585. #define _SC_PHYS_PAGES 113
  586. #define _SC_AVPHYS_PAGES 114
  587. #define _SC_LPAR_ENABLED 115
  588. #define _SC_LARGE_PAGESIZE 116
  589. #endif /* _ALL_SOURCE */
  590. #define _SC_AIX_KERNEL_BITMODE 117
  591. #define _SC_AIX_REALMEM 118
  592. #define _SC_AIX_HARDWARE_BITMODE 119
  593. #define _SC_AIX_MP_CAPABLE 120
  594. #define _SC_V6_ILP32_OFF32 121
  595. #define _SC_V6_ILP32_OFFBIG 122
  596. #define _SC_V6_LP64_OFF64 123
  597. #define _SC_V6_LPBIG_OFFBIG 124
  598. #define _SC_XOPEN_STREAMS 125
  599. #if (_POSIX_C_SOURCE >= 200112L)
  600. #define _SC_HOST_NAME_MAX 126
  601. #define _SC_REGEXP 127
  602. #define _SC_SHELL 128
  603. #define _SC_SYMLOOP_MAX 129
  604. #define _SC_ADVISORY_INFO 130
  605. #define _SC_FILE_LOCKING 131
  606. #define _SC_2_PBS 132
  607. #define _SC_2_PBS_ACCOUNTING 133
  608. #define _SC_2_PBS_CHECKPOINT 134
  609. #define _SC_2_PBS_LOCATE 135
  610. #define _SC_2_PBS_MESSAGE 136
  611. #define _SC_2_PBS_TRACK 137
  612. #define _SC_BARRIERS 138
  613. #define _SC_CLOCK_SELECTION 139
  614. #define _SC_CPUTIME 140
  615. #define _SC_MONOTONIC_CLOCK 141
  616. #define _SC_READER_WRITER_LOCKS 142
  617. #define _SC_SPAWN 143
  618. #define _SC_SPIN_LOCKS 144
  619. #define _SC_SPORADIC_SERVER 145
  620. #define _SC_THREAD_CPUTIME 146
  621. #define _SC_THREAD_SPORADIC_SERVER 147
  622. #define _SC_TIMEOUTS 148
  623. #define _SC_TRACE 149
  624. #define _SC_TRACE_EVENT_FILTER 150
  625. #define _SC_TRACE_INHERIT 151
  626. #define _SC_TRACE_LOG 152
  627. #define _SC_TYPED_MEMORY_OBJECTS 153
  628. #define _SC_IPV6 154
  629. #define _SC_RAW_SOCKETS 155
  630. #define _SC_SS_REPL_MAX 156
  631. #define _SC_TRACE_EVENT_NAME_MAX 157
  632. #define _SC_TRACE_NAME_MAX 158
  633. #define _SC_TRACE_SYS_MAX 159
  634. #define _SC_TRACE_USER_EVENT_MAX 160
  635. #endif /* _POSIX_C_SOURCE >= 200112L */
  636. #ifdef _ALL_SOURCE
  637. #define _SC_AIX_UKEYS 161
  638. #endif /* _ALL_SOURCE */
  639. #endif /* _POSIX_SOURCE */
  640. #if _XOPEN_SOURCE_EXTENDED==1
  641. #ifdef _LARGE_FILES
  642. #define ftruncate ftruncate64
  643. #define truncate truncate64
  644. #endif
  645. #ifndef _H_LOCKF
  646. #include <sys/lockf.h> /* lockf definitions for portability */
  647. #endif
  648. #ifdef _NO_PROTO
  649. #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE<200112L) || defined(_ALL_SOURCE)
  650. extern int brk();
  651. extern int getpagesize();
  652. #ifndef _MSGQSUPPORT
  653. extern int __fd_getdtablesize();
  654. static int getdtablesize()
  655. {
  656. return __fd_getdtablesize();
  657. }
  658. #else
  659. extern int getdtablesize();
  660. #endif /* _MSGQSUPPORT */
  661. extern void *sbrk();
  662. #endif /* _POSIX_C_SOURCE<200112L */
  663. extern int fchdir();
  664. extern int fchown();
  665. extern int ftruncate();
  666. extern long gethostid();
  667. extern int gethostname();
  668. extern pid_t getpgid();
  669. extern pid_t getsid();
  670. extern char *getwd();
  671. extern int lchown();
  672. extern int readlink();
  673. extern pid_t setpgrp();
  674. extern int setregid();
  675. extern int setreuid();
  676. extern int symlink();
  677. extern void sync();
  678. extern int truncate();
  679. extern useconds_t ualarm();
  680. extern int usleep();
  681. extern pid_t vfork();
  682. #else /* _NO_PROTO */
  683. #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE<200112L) || defined(_ALL_SOURCE)
  684. extern int brk(void *);
  685. extern int getpagesize(void);
  686. #ifndef _MSGQSUPPORT
  687. extern int __fd_getdtablesize(void);
  688. static int getdtablesize()
  689. {
  690. return __fd_getdtablesize();
  691. }
  692. #else
  693. extern int getdtablesize(void);
  694. #endif /* _MSGQSUPPORT */
  695. #ifdef _LINUX_SOURCE_COMPAT
  696. extern void *sbrk(ptrdiff_t);
  697. #elif (_XOPEN_SOURCE >= 500) || defined(__64BIT__)
  698. extern void *sbrk(intptr_t);
  699. #else
  700. extern void *sbrk(int);
  701. #endif
  702. #endif /* _POSIX_C_SOURCE<200112L */
  703. extern int fchdir(int);
  704. extern int fchown(int, uid_t, gid_t);
  705. extern int ftruncate(int, off_t);
  706. #ifdef _LARGE_FILE_API
  707. extern int ftruncate64(int, off64_t);
  708. #endif
  709. extern int gethostname(char *, size_t);
  710. extern long gethostid(void);
  711. extern pid_t getpgid(pid_t);
  712. extern pid_t getsid(pid_t);
  713. extern char *getwd(char *);
  714. extern int lchown(const char *, uid_t, gid_t);
  715. #if (defined(_SUSV3_READLINK) || \
  716. (!defined(_ALL_SOURCE) && (_POSIX_C_SOURCE >= 200112L)))
  717. /* If SUSV3 readlink specifically requested or if strict SUSv3
  718. * environment requested */
  719. #ifdef __64BIT__
  720. static ssize_t readlink(const char *__restrict__ __path,
  721. char *__restrict__ __buf, size_t __bufsize)
  722. {
  723. extern ssize_t __readlink64(const char *__restrict__, char *__restrict__, size_t);
  724. return __readlink64(__path, __buf, __bufsize);
  725. }
  726. #else
  727. extern ssize_t readlink(const char *__restrict__, char *__restrict__, size_t);
  728. #endif /* __64BIT__ */
  729. #else
  730. extern int readlink(const char *, char *, size_t);
  731. #endif /* _SUSV3_READLINK || !_ALL_SOURCE && _POSIX_C_SOURCE >= 200112L */
  732. #ifndef _BSD
  733. extern pid_t setpgrp(void);
  734. #endif /* _BSD */
  735. extern int setregid(gid_t, gid_t);
  736. extern int setreuid(uid_t, uid_t);
  737. extern int symlink(const char *, const char *);
  738. extern void sync(void);
  739. extern int truncate(const char *, off_t);
  740. #ifdef _LARGE_FILE_API
  741. extern int truncate64(const char *, off64_t);
  742. #endif
  743. extern useconds_t ualarm(useconds_t, useconds_t);
  744. extern int usleep(useconds_t);
  745. extern pid_t vfork(void);
  746. #if _XOPEN_SOURCE>=500
  747. extern int getlogin_r(char *, size_t);
  748. extern int ttyname_r(int, char *, size_t);
  749. #ifdef _LARGE_FILES
  750. #define pread pread64
  751. #define pwrite pwrite64
  752. #endif /* _LARGE_FILES */
  753. extern ssize_t pread(int, void *, size_t, off_t);
  754. extern ssize_t pwrite(int, const void *, size_t, off_t);
  755. #ifdef _LARGE_FILE_API
  756. extern ssize_t pread64(int, void *, size_t, off64_t);
  757. extern ssize_t pwrite64(int, const void *, size_t, off64_t);
  758. #endif /* _LARGE_FILE_API */
  759. #endif /* _XOPEN_SOURCE>=500 */
  760. #endif /* _NO_PROTO */
  761. #endif /* _XOPEN_SOURCE_EXTENDED */
  762. #ifdef _ALL_SOURCE
  763. extern char **environ;
  764. #ifndef _KERNEL
  765. #ifdef _NO_PROTO
  766. extern pid_t f_fork();
  767. #else /* _NO_PROTO */
  768. extern pid_t f_fork(void);
  769. #endif /* _NO_PROTO */
  770. #endif /* _KERNEL */
  771. #ifdef _NO_PROTO
  772. extern char * cuserid();
  773. extern int ioctl();
  774. #ifdef __64BIT__
  775. extern int ioctlx();
  776. extern int ioctl32();
  777. extern int ioctl32x();
  778. #endif /* __64BIT__ */
  779. extern int readx();
  780. extern int setgroups();
  781. extern int writex();
  782. extern int setegid();
  783. extern int seteuid();
  784. extern int setrgid();
  785. extern int setruid();
  786. extern offset_t llseek();
  787. extern char * getusershell();
  788. extern void setusershell();
  789. extern void endusershell();
  790. extern char * get_current_dir_name();
  791. extern int sysfs();
  792. #else
  793. extern char * cuserid(char *);
  794. extern int setegid(gid_t);
  795. extern int seteuid(uid_t);
  796. extern int setrgid(gid_t);
  797. extern int setruid(uid_t);
  798. #ifndef _BSD
  799. extern int ioctl(int, int, ...);
  800. #endif /* _BSD */
  801. #ifdef __64BIT__
  802. extern int ioctlx(int, int, void *, long);
  803. extern int ioctl32(int, int, ...);
  804. extern int ioctl32x(int, int, unsigned int, unsigned int);
  805. #endif /* __64BIT__ */
  806. extern int setgroups(int, gid_t []);
  807. #ifndef _KERNEL
  808. extern int readx(int, char*, unsigned, long);
  809. extern int writex(int, char*, unsigned, long);
  810. #ifdef _LARGE_FILES
  811. #define fclear fclear64
  812. #define fsync_range fsync_range64
  813. #endif
  814. extern off_t fclear(int, off_t);
  815. extern int fsync_range(int, int, off_t, off_t);
  816. #ifdef _LARGE_FILE_API
  817. extern off64_t fclear64(int, off64_t);
  818. extern int fsync_range64(int, int, off64_t, off64_t);
  819. #endif
  820. extern offset_t llseek(int, offset_t, int);
  821. extern char * getusershell(void);
  822. extern void setusershell(void);
  823. extern void endusershell(void);
  824. extern char * get_current_dir_name(void);
  825. extern int sysfs(int, ...);
  826. extern int finfo(const char *, int, void *, int32long64_t);
  827. extern int ffinfo(int, int, void *, int32long64_t);
  828. #endif /* ndef _KERNEL */
  829. #endif /* _NO_PROTO */
  830. #define _AES_OS_VERSION 1 /* OSF, AES version */
  831. #endif /* _ALL_SOURCE */
  832. #ifdef __cplusplus
  833. }
  834. #endif
  835. #endif /* _H_UNISTD */