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