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 316 /* 317 * Large File Summit names 318 * 319 * This value matches the MIPS ABI choice, but leaves a large gap in the 320 * value space. 321 */ 322 #define _PC_FILESIZEBITS 67 323 324 /* 325 * Extended attributes 326 */ 327 #define _PC_XATTR_ENABLED 100 328 #define _PC_XATTR_EXISTS 101 329 330 /* 331 * If you add a _PC define above 101, you must change _PC_LAST (and truss). 332 */ 333 #define _PC_LAST 101 334 335 /* 336 * Case sensitivity values (related to _PC_CASE_BEHAVIOR) 337 */ 338 #define _CASE_SENSITIVE 0x1 339 #define _CASE_INSENSITIVE 0x2 340 341 /* 342 * The value of 0 is returned when 343 * ACL's are not supported 344 */ 345 #define _ACL_ACLENT_ENABLED 0x1 346 #define _ACL_ACE_ENABLED 0x2 347 348 #ifndef _POSIX_VERSION 349 #ifdef _XPG6 350 #define _POSIX_VERSION 200112L /* Supports IEEE Std 1003.1-2001 */ 351 #else 352 #define _POSIX_VERSION 199506L /* Supports POSIX-1c DIS */ 353 #endif 354 #endif /* _POSIX_VERSION */ 355 356 #ifndef _POSIX2_VERSION 357 #ifdef _XPG6 358 #define _POSIX2_VERSION 200112L /* Supports IEEE Std 1003.1-2001 */ 359 #else 360 #define _POSIX2_VERSION 199209L /* Supports ISO POSIX-2 DIS */ 361 #endif 362 #endif /* _POSIX2_VERSION */ 363 364 /* 365 * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications 366 * should not rely on this value, it has been aligned with the current 367 * standard to avoid confusion if used. 368 */ 369 #ifndef _POSIX2_C_VERSION 370 #ifdef _XPG6 371 #define _POSIX2_C_VERSION 200112L /* Supports IEEE Std 1003.1-2001 */ 372 #else 373 #define _POSIX2_C_VERSION 199209L /* Supports ISO POSIX-2 DIS */ 374 #endif 375 #endif /* _POSIX2_C_VERSION */ 376 377 #define _XOPEN_XPG3 /* Supports XPG, Issue 3 */ 378 #define _XOPEN_XPG4 /* Supports XPG, Issue 4 */ 379 #define _XOPEN_UNIX 0 /* Supports X/Open System Interfaces */ 380 381 #ifndef _XOPEN_XCU_VERSION 382 #define _XOPEN_XCU_VERSION 4 /* Supports XCU4 */ 383 #endif 384 385 #define _XOPEN_REALTIME 1 /* Supports Realtime */ 386 #define _XOPEN_ENH_I18N 1 /* Supports Enhanced International */ 387 #define _XOPEN_SHM 1 /* Supports Shared Memory Feature */ 388 #define _POSIX2_CHAR_TERM 1 /* Supports at least 1 terminal type */ 389 390 #ifdef _XPG6 391 #define _POSIX2_C_BIND 200112L /* Supports C Language Bindings */ 392 #define _POSIX2_C_DEV 200112L /* Supports C language dev utility */ 393 #define _POSIX2_FORT_RUN 200112L /* Supports FORTRAN runtime */ 394 #define _POSIX2_LOCALEDEF 200112L /* Supports creation of locales */ 395 #define _POSIX2_SW_DEV 200112L /* Supports S/W Development Utility */ 396 #define _POSIX2_UPE 200112L /* Supports User Portability Utility */ 397 #else 398 #define _POSIX2_C_BIND 1 /* Supports C Language Bindings */ 399 #define _POSIX2_C_DEV 1 /* Supports C language dev utility */ 400 #define _POSIX2_FORT_RUN 1 /* Supports FORTRAN runtime */ 401 #define _POSIX2_LOCALEDEF 1 /* Supports creation of locales */ 402 #define _POSIX2_SW_DEV 1 /* Supports S/W Development Utility */ 403 #define _POSIX2_UPE 1 /* Supports User Portability Utility */ 404 #endif /* _XPG6 */ 405 406 /* UNIX 03 names */ 407 #define _POSIX_REGEXP 1 /* Supports POSIX Regular Expressions */ 408 #define _POSIX_SHELL 1 /* Supports POSIX shell */ 409 #define _XOPEN_STREAMS 1 /* Supports XSI Streams Option Group */ 410 411 #ifdef __cplusplus 412 } 413 #endif 414 415 #endif /* _SYS_UNISTD_H */ 416