Merge commit '7e3488dc6cdcb0c04e1ce167a1a3bfef83b5f2e0'
[unleashed.git] / include / sys / unistd.h
blobf366e99f6a007d3c96026dccc5eb716a49fae432
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
23 * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
24 * All Rights Reserved
29 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
30 * Use is subject to license terms.
34 * WARNING: This is an implementation-specific header,
35 * its contents are not guaranteed. Applications
36 * should include <unistd.h> and not this header.
39 #ifndef _SYS_UNISTD_H
40 #define _SYS_UNISTD_H
42 #include <sys/feature_tests.h>
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
48 /* command names for confstr */
50 #define _CS_PATH 65
53 * command names for large file configuration information
55 /* large file compilation environment configuration */
56 #define _CS_LFS_CFLAGS 68
57 #define _CS_LFS_LDFLAGS 69
58 #define _CS_LFS_LIBS 70
59 #define _CS_LFS_LINTFLAGS 71
60 /* transitional large file interface configuration */
61 #define _CS_LFS64_CFLAGS 72
62 #define _CS_LFS64_LDFLAGS 73
63 #define _CS_LFS64_LIBS 74
64 #define _CS_LFS64_LINTFLAGS 75
66 /* UNIX 98 */
67 #define _CS_XBS5_ILP32_OFF32_CFLAGS 700
68 #define _CS_XBS5_ILP32_OFF32_LDFLAGS 701
69 #define _CS_XBS5_ILP32_OFF32_LIBS 702
70 #define _CS_XBS5_ILP32_OFF32_LINTFLAGS 703
71 #define _CS_XBS5_ILP32_OFFBIG_CFLAGS 705
72 #define _CS_XBS5_ILP32_OFFBIG_LDFLAGS 706
73 #define _CS_XBS5_ILP32_OFFBIG_LIBS 707
74 #define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 708
75 #define _CS_XBS5_LP64_OFF64_CFLAGS 709
76 #define _CS_XBS5_LP64_OFF64_LDFLAGS 710
77 #define _CS_XBS5_LP64_OFF64_LIBS 711
78 #define _CS_XBS5_LP64_OFF64_LINTFLAGS 712
79 #define _CS_XBS5_LPBIG_OFFBIG_CFLAGS 713
80 #define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS 714
81 #define _CS_XBS5_LPBIG_OFFBIG_LIBS 715
82 #define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 716
84 /* UNIX 03 */
85 #define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 800
86 #define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 801
87 #define _CS_POSIX_V6_ILP32_OFF32_LIBS 802
88 #define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS 803
89 #define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 804
90 #define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 805
91 #define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 806
92 #define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS 807
93 #define _CS_POSIX_V6_LP64_OFF64_CFLAGS 808
94 #define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 809
95 #define _CS_POSIX_V6_LP64_OFF64_LIBS 810
96 #define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS 811
97 #define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 812
98 #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 813
99 #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 814
100 #define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS 815
101 #define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 816
103 /* command names for POSIX sysconf */
105 /* POSIX.1 names */
106 #define _SC_ARG_MAX 1
107 #define _SC_CHILD_MAX 2
108 #define _SC_CLK_TCK 3
109 #define _SC_NGROUPS_MAX 4
110 #define _SC_OPEN_MAX 5
111 #define _SC_JOB_CONTROL 6
112 #define _SC_SAVED_IDS 7
113 #define _SC_VERSION 8
114 /* SVR4 names */
115 #define _SC_PASS_MAX 9
116 #define _SC_LOGNAME_MAX 10
117 #define _SC_PAGESIZE 11
118 #define _SC_XOPEN_VERSION 12
119 /* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */
120 #define _SC_NPROCESSORS_CONF 14
121 #define _SC_NPROCESSORS_ONLN 15
122 #define _SC_STREAM_MAX 16
123 #define _SC_TZNAME_MAX 17
124 /* POSIX.4 names */
125 #define _SC_AIO_LISTIO_MAX 18
126 #define _SC_AIO_MAX 19
127 #define _SC_AIO_PRIO_DELTA_MAX 20
128 #define _SC_ASYNCHRONOUS_IO 21
129 #define _SC_DELAYTIMER_MAX 22
130 #define _SC_FSYNC 23
131 #define _SC_MAPPED_FILES 24
132 #define _SC_MEMLOCK 25
133 #define _SC_MEMLOCK_RANGE 26
134 #define _SC_MEMORY_PROTECTION 27
135 #define _SC_MESSAGE_PASSING 28
136 #define _SC_MQ_OPEN_MAX 29
137 #define _SC_MQ_PRIO_MAX 30
138 #define _SC_PRIORITIZED_IO 31
139 #define _SC_PRIORITY_SCHEDULING 32
140 #define _SC_REALTIME_SIGNALS 33
141 #define _SC_RTSIG_MAX 34
142 #define _SC_SEMAPHORES 35
143 #define _SC_SEM_NSEMS_MAX 36
144 #define _SC_SEM_VALUE_MAX 37
145 #define _SC_SHARED_MEMORY_OBJECTS 38
146 #define _SC_SIGQUEUE_MAX 39
147 #define _SC_SIGRT_MIN 40
148 #define _SC_SIGRT_MAX 41
149 #define _SC_SYNCHRONIZED_IO 42
150 #define _SC_TIMERS 43
151 #define _SC_TIMER_MAX 44
152 /* XPG4 names */
153 #define _SC_2_C_BIND 45
154 #define _SC_2_C_DEV 46
155 #define _SC_2_C_VERSION 47
156 #define _SC_2_FORT_DEV 48
157 #define _SC_2_FORT_RUN 49
158 #define _SC_2_LOCALEDEF 50
159 #define _SC_2_SW_DEV 51
160 #define _SC_2_UPE 52
161 #define _SC_2_VERSION 53
162 #define _SC_BC_BASE_MAX 54
163 #define _SC_BC_DIM_MAX 55
164 #define _SC_BC_SCALE_MAX 56
165 #define _SC_BC_STRING_MAX 57
166 #define _SC_COLL_WEIGHTS_MAX 58
167 #define _SC_EXPR_NEST_MAX 59
168 #define _SC_LINE_MAX 60
169 #define _SC_RE_DUP_MAX 61
170 #define _SC_XOPEN_CRYPT 62
171 #define _SC_XOPEN_ENH_I18N 63
172 #define _SC_XOPEN_SHM 64
174 /* additional XSH4/XCU4 command names for sysconf */
175 #define _SC_2_CHAR_TERM 66
176 #define _SC_XOPEN_XCU_VERSION 67
178 /* additional XPG4v2 (UNIX 95) command names */
179 #define _SC_ATEXIT_MAX 76
180 #define _SC_IOV_MAX 77
181 #define _SC_XOPEN_UNIX 78
182 #define _SC_PAGE_SIZE _SC_PAGESIZE
184 /* defined for XTI (XNS Issue 5) */
185 #ifndef _SC_T_IOV_MAX
186 #define _SC_T_IOV_MAX 79 /* Must be same in <xti.h> */
187 #endif /* T_IOV_MAX must be <= IOV_MAX */
189 #define _SC_PHYS_PAGES 500
190 #define _SC_AVPHYS_PAGES 501
193 * Hardware specific items
194 * Note that not all items are supported on all architectures
196 #define _SC_COHER_BLKSZ 503 /* Coherence block size */
197 #define _SC_SPLIT_CACHE 504 /* != 0 iff a split cache */
198 #define _SC_ICACHE_SZ 505 /* Instruction cache size (bytes) */
199 #define _SC_DCACHE_SZ 506 /* Data cache size (bytes) */
200 #define _SC_ICACHE_LINESZ 507 /* Instruction cache line size */
201 #define _SC_DCACHE_LINESZ 508 /* Data cache line size */
202 #define _SC_ICACHE_BLKSZ 509 /* Block size invalidated for icache */
203 #define _SC_DCACHE_BLKSZ 510 /* Block size for dcache */
204 #define _SC_DCACHE_TBLKSZ 511 /* Block size for dcache prefetch */
205 #define _SC_ICACHE_ASSOC 512 /* Icache associativity 1, 2, 3 etc */
206 #define _SC_DCACHE_ASSOC 513 /* Dcache associativity 1, 2, 3 etc */
208 #define _SC_MAXPID 514 /* maximum pid value */
209 #define _SC_STACK_PROT 515 /* default stack protection */
210 #define _SC_NPROCESSORS_MAX 516 /* maximum # of processors */
211 #define _SC_CPUID_MAX 517 /* maximum CPU id */
212 #define _SC_EPHID_MAX 518 /* maximum ephemeral id */
215 * POSIX.1c (pthreads) names. These values are defined above
216 * the sub-500 range. See psarc case 1995/257.
218 #define _SC_THREAD_DESTRUCTOR_ITERATIONS 568
219 #define _SC_GETGR_R_SIZE_MAX 569
220 #define _SC_GETPW_R_SIZE_MAX 570
221 #define _SC_LOGIN_NAME_MAX 571
222 #define _SC_THREAD_KEYS_MAX 572
223 #define _SC_THREAD_STACK_MIN 573
224 #define _SC_THREAD_THREADS_MAX 574
225 #define _SC_TTY_NAME_MAX 575
226 #define _SC_THREADS 576
227 #define _SC_THREAD_ATTR_STACKADDR 577
228 #define _SC_THREAD_ATTR_STACKSIZE 578
229 #define _SC_THREAD_PRIORITY_SCHEDULING 579
230 #define _SC_THREAD_PRIO_INHERIT 580
231 #define _SC_THREAD_PRIO_PROTECT 581
232 #define _SC_THREAD_PROCESS_SHARED 582
233 #define _SC_THREAD_SAFE_FUNCTIONS 583
235 /* UNIX 98 */
236 #define _SC_XOPEN_LEGACY 717
237 #define _SC_XOPEN_REALTIME 718
238 #define _SC_XOPEN_REALTIME_THREADS 719
239 #define _SC_XBS5_ILP32_OFF32 720
240 #define _SC_XBS5_ILP32_OFFBIG 721
241 #define _SC_XBS5_LP64_OFF64 722
242 #define _SC_XBS5_LPBIG_OFFBIG 723
244 /* UNIX 03 */
245 #define _SC_2_PBS 724
246 #define _SC_2_PBS_ACCOUNTING 725
247 #define _SC_2_PBS_CHECKPOINT 726
248 #define _SC_2_PBS_LOCATE 728
249 #define _SC_2_PBS_MESSAGE 729
250 #define _SC_2_PBS_TRACK 730
251 #define _SC_ADVISORY_INFO 731
252 #define _SC_BARRIERS 732
253 #define _SC_CLOCK_SELECTION 733
254 #define _SC_CPUTIME 734
255 #define _SC_HOST_NAME_MAX 735
256 #define _SC_MONOTONIC_CLOCK 736
257 #define _SC_READER_WRITER_LOCKS 737
258 #define _SC_REGEXP 738
259 #define _SC_SHELL 739
260 #define _SC_SPAWN 740
261 #define _SC_SPIN_LOCKS 741
262 #define _SC_SPORADIC_SERVER 742
263 #define _SC_SS_REPL_MAX 743
264 #define _SC_SYMLOOP_MAX 744
265 #define _SC_THREAD_CPUTIME 745
266 #define _SC_THREAD_SPORADIC_SERVER 746
267 #define _SC_TIMEOUTS 747
268 #define _SC_TRACE 748
269 #define _SC_TRACE_EVENT_FILTER 749
270 #define _SC_TRACE_EVENT_NAME_MAX 750
271 #define _SC_TRACE_INHERIT 751
272 #define _SC_TRACE_LOG 752
273 #define _SC_TRACE_NAME_MAX 753
274 #define _SC_TRACE_SYS_MAX 754
275 #define _SC_TRACE_USER_EVENT_MAX 755
276 #define _SC_TYPED_MEMORY_OBJECTS 756
277 #define _SC_V6_ILP32_OFF32 757
278 #define _SC_V6_ILP32_OFFBIG 758
279 #define _SC_V6_LP64_OFF64 759
280 #define _SC_V6_LPBIG_OFFBIG 760
281 #define _SC_XOPEN_STREAMS 761
282 #define _SC_IPV6 762
283 #define _SC_RAW_SOCKETS 763
285 /* command names for POSIX pathconf */
287 /* POSIX.1 names */
288 #define _PC_LINK_MAX 1
289 #define _PC_MAX_CANON 2
290 #define _PC_MAX_INPUT 3
291 #define _PC_NAME_MAX 4
292 #define _PC_PATH_MAX 5
293 #define _PC_PIPE_BUF 6
294 #define _PC_NO_TRUNC 7
295 #define _PC_VDISABLE 8
296 #define _PC_CHOWN_RESTRICTED 9
297 /* POSIX.4 names */
298 #define _PC_ASYNC_IO 10
299 #define _PC_PRIO_IO 11
300 #define _PC_SYNC_IO 12
301 /* UNIX 03 names */
302 #define _PC_ALLOC_SIZE_MIN 13
303 #define _PC_REC_INCR_XFER_SIZE 14
304 #define _PC_REC_MAX_XFER_SIZE 15
305 #define _PC_REC_MIN_XFER_SIZE 16
306 #define _PC_REC_XFER_ALIGN 17
307 #define _PC_SYMLINK_MAX 18
308 #define _PC_2_SYMLINKS 19
309 #define _PC_ACL_ENABLED 20
310 #define _PC_MIN_HOLE_SIZE 21
311 #define _PC_CASE_BEHAVIOR 22
312 #define _PC_SATTR_ENABLED 23
313 #define _PC_SATTR_EXISTS 24
314 #define _PC_ACCESS_FILTERING 25
315 /* UNIX 08 names */
316 #define _PC_TIMESTAMP_RESOLUTION 26
319 * Large File Summit names
321 * This value matches the MIPS ABI choice, but leaves a large gap in the
322 * value space.
324 #define _PC_FILESIZEBITS 67
327 * Extended attributes
329 #define _PC_XATTR_ENABLED 100
330 #define _PC_XATTR_EXISTS 101
333 * If you add a _PC define above 101, you must change _PC_LAST (and truss).
335 #define _PC_LAST 101
338 * Case sensitivity values (related to _PC_CASE_BEHAVIOR)
340 #define _CASE_SENSITIVE 0x1
341 #define _CASE_INSENSITIVE 0x2
344 * The value of 0 is returned when
345 * ACL's are not supported
347 #define _ACL_ACLENT_ENABLED 0x1
348 #define _ACL_ACE_ENABLED 0x2
350 #ifndef _POSIX_VERSION
351 #ifdef _XPG6
352 #define _POSIX_VERSION 200112L /* Supports IEEE Std 1003.1-2001 */
353 #else
354 #define _POSIX_VERSION 199506L /* Supports POSIX-1c DIS */
355 #endif
356 #endif /* _POSIX_VERSION */
358 #ifndef _POSIX2_VERSION
359 #ifdef _XPG6
360 #define _POSIX2_VERSION 200112L /* Supports IEEE Std 1003.1-2001 */
361 #else
362 #define _POSIX2_VERSION 199209L /* Supports ISO POSIX-2 DIS */
363 #endif
364 #endif /* _POSIX2_VERSION */
367 * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications
368 * should not rely on this value, it has been aligned with the current
369 * standard to avoid confusion if used.
371 #ifndef _POSIX2_C_VERSION
372 #ifdef _XPG6
373 #define _POSIX2_C_VERSION 200112L /* Supports IEEE Std 1003.1-2001 */
374 #else
375 #define _POSIX2_C_VERSION 199209L /* Supports ISO POSIX-2 DIS */
376 #endif
377 #endif /* _POSIX2_C_VERSION */
379 #define _XOPEN_XPG3 /* Supports XPG, Issue 3 */
380 #define _XOPEN_XPG4 /* Supports XPG, Issue 4 */
381 #define _XOPEN_UNIX 0 /* Supports X/Open System Interfaces */
383 #ifndef _XOPEN_XCU_VERSION
384 #define _XOPEN_XCU_VERSION 4 /* Supports XCU4 */
385 #endif
387 #define _XOPEN_REALTIME 1 /* Supports Realtime */
388 #define _XOPEN_ENH_I18N 1 /* Supports Enhanced International */
389 #define _XOPEN_SHM 1 /* Supports Shared Memory Feature */
390 #define _POSIX2_CHAR_TERM 1 /* Supports at least 1 terminal type */
392 #ifdef _XPG6
393 #define _POSIX2_C_BIND 200112L /* Supports C Language Bindings */
394 #define _POSIX2_C_DEV 200112L /* Supports C language dev utility */
395 #define _POSIX2_FORT_RUN 200112L /* Supports FORTRAN runtime */
396 #define _POSIX2_LOCALEDEF 200112L /* Supports creation of locales */
397 #define _POSIX2_SW_DEV 200112L /* Supports S/W Development Utility */
398 #define _POSIX2_UPE 200112L /* Supports User Portability Utility */
399 #else
400 #define _POSIX2_C_BIND 1 /* Supports C Language Bindings */
401 #define _POSIX2_C_DEV 1 /* Supports C language dev utility */
402 #define _POSIX2_FORT_RUN 1 /* Supports FORTRAN runtime */
403 #define _POSIX2_LOCALEDEF 1 /* Supports creation of locales */
404 #define _POSIX2_SW_DEV 1 /* Supports S/W Development Utility */
405 #define _POSIX2_UPE 1 /* Supports User Portability Utility */
406 #endif /* _XPG6 */
408 /* UNIX 03 names */
409 #define _POSIX_REGEXP 1 /* Supports POSIX Regular Expressions */
410 #define _POSIX_SHELL 1 /* Supports POSIX shell */
411 #define _XOPEN_STREAMS 1 /* Supports XSI Streams Option Group */
413 #ifdef __cplusplus
415 #endif
417 #endif /* _SYS_UNISTD_H */