Home | History | Annotate | Download | only in sys
      1 /*
      2  * CDDL HEADER START
      3  *
      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.
      7  *
      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.
     12  *
     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]
     18  *
     19  * CDDL HEADER END
     20  */
     21 
     22 /*
     23  *	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
     24  *	  All Rights Reserved
     25  *
     26  */
     27 
     28 /*
     29  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
     30  * Use is subject to license terms.
     31  */
     32 
     33 /*
     34  * WARNING: This is an implementation-specific header,
     35  * its contents are not guaranteed. Applications
     36  * should include <unistd.h> and not this header.
     37  */
     38 
     39 #ifndef _SYS_UNISTD_H
     40 #define	_SYS_UNISTD_H
     41 
     42 #include <sys/feature_tests.h>
     43 
     44 #ifdef	__cplusplus
     45 extern "C" {
     46 #endif
     47 
     48 /* command names for confstr */
     49 
     50 #define	_CS_PATH			65
     51 
     52 /*
     53  * command names for large file configuration information
     54  */
     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
     65 
     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
     83 
     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
    102 
    103 /* command names for POSIX sysconf */
    104 
    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
    173 
    174 /* additional XSH4/XCU4 command names for sysconf */
    175 #define	_SC_2_CHAR_TERM			66
    176 #define	_SC_XOPEN_XCU_VERSION		67
    177 
    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
    183 
    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 */
    188 
    189 #define	_SC_PHYS_PAGES			500
    190 #define	_SC_AVPHYS_PAGES		501
    191 
    192 /*
    193  * Hardware specific items
    194  * Note that not all items are supported on all architectures
    195  */
    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 */
    207 
    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 */
    213 
    214 /*
    215  * POSIX.1c (pthreads) names. These values are defined above
    216  * the sub-500 range. See psarc case 1995/257.
    217  */
    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
    234 
    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
    243 
    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
    284 
    285 /* command names for POSIX pathconf */
    286 
    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
    317 
    318 /*
    319  * Large File Summit names
    320  *
    321  * This value matches the MIPS ABI choice, but leaves a large gap in the
    322  * value space.
    323  */
    324 #define	_PC_FILESIZEBITS	67
    325 
    326 /*
    327  * Extended attributes
    328  */
    329 #define	_PC_XATTR_ENABLED	100
    330 #define	_PC_XATTR_EXISTS	101
    331 
    332 /*
    333  * If you add a _PC define above 101, you must change _PC_LAST (and truss).
    334  */
    335 #define	_PC_LAST		101
    336 
    337 /*
    338  * Case sensitivity values (related to _PC_CASE_BEHAVIOR)
    339  */
    340 #define	_CASE_SENSITIVE		0x1
    341 #define	_CASE_INSENSITIVE	0x2
    342 
    343 /*
    344  * The value of 0 is returned when
    345  * ACL's are not supported
    346  */
    347 #define	_ACL_ACLENT_ENABLED	0x1
    348 #define	_ACL_ACE_ENABLED	0x2
    349 
    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 */
    357 
    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 */
    365 
    366 /*
    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.
    370  */
    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 */
    378 
    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 */
    382 
    383 #ifndef	_XOPEN_XCU_VERSION
    384 #define	_XOPEN_XCU_VERSION	4	/* Supports XCU4 */
    385 #endif
    386 
    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 */
    391 
    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 */
    407 
    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 */
    412 
    413 #ifdef	__cplusplus
    414 }
    415 #endif
    416 
    417 #endif	/* _SYS_UNISTD_H */
    418