root/usr/src/uts/common/sys/unistd.h
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */

/*
 *      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
 *        All Rights Reserved
 *
 */

/*
 * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

/*
 * WARNING: This is an implementation-specific header,
 * its contents are not guaranteed. Applications
 * should include <unistd.h> and not this header.
 */

#ifndef _SYS_UNISTD_H
#define _SYS_UNISTD_H

#include <sys/feature_tests.h>

#ifdef  __cplusplus
extern "C" {
#endif

/* command names for confstr */

#define _CS_PATH                        65

/*
 * command names for large file configuration information
 */
/* large file compilation environment configuration */
#define _CS_LFS_CFLAGS                  68
#define _CS_LFS_LDFLAGS                 69
#define _CS_LFS_LIBS                    70
#define _CS_LFS_LINTFLAGS               71
/* transitional large file interface configuration */
#define _CS_LFS64_CFLAGS                72
#define _CS_LFS64_LDFLAGS               73
#define _CS_LFS64_LIBS                  74
#define _CS_LFS64_LINTFLAGS             75

/* UNIX 98 */
#define _CS_XBS5_ILP32_OFF32_CFLAGS     700
#define _CS_XBS5_ILP32_OFF32_LDFLAGS    701
#define _CS_XBS5_ILP32_OFF32_LIBS       702
#define _CS_XBS5_ILP32_OFF32_LINTFLAGS  703
#define _CS_XBS5_ILP32_OFFBIG_CFLAGS    705
#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS   706
#define _CS_XBS5_ILP32_OFFBIG_LIBS      707
#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS 708
#define _CS_XBS5_LP64_OFF64_CFLAGS      709
#define _CS_XBS5_LP64_OFF64_LDFLAGS     710
#define _CS_XBS5_LP64_OFF64_LIBS        711
#define _CS_XBS5_LP64_OFF64_LINTFLAGS   712
#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS    713
#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS   714
#define _CS_XBS5_LPBIG_OFFBIG_LIBS      715
#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS 716

/* UNIX 03 */
#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS         800
#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS        801
#define _CS_POSIX_V6_ILP32_OFF32_LIBS           802
#define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS      803
#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS        804
#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS       805
#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS          806
#define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS     807
#define _CS_POSIX_V6_LP64_OFF64_CFLAGS          808
#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS         809
#define _CS_POSIX_V6_LP64_OFF64_LIBS            810
#define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS       811
#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS        812
#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS       813
#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS          814
#define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS     815
#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS      816

/* command names for POSIX sysconf */

/* POSIX.1 names */
#define _SC_ARG_MAX                     1
#define _SC_CHILD_MAX                   2
#define _SC_CLK_TCK                     3
#define _SC_NGROUPS_MAX                 4
#define _SC_OPEN_MAX                    5
#define _SC_JOB_CONTROL                 6
#define _SC_SAVED_IDS                   7
#define _SC_VERSION                     8
/* SVR4 names */
#define _SC_PASS_MAX                    9
#define _SC_LOGNAME_MAX                 10
#define _SC_PAGESIZE                    11
#define _SC_XOPEN_VERSION               12
/* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */
#define _SC_NPROCESSORS_CONF            14
#define _SC_NPROCESSORS_ONLN            15
#define _SC_STREAM_MAX                  16
#define _SC_TZNAME_MAX                  17
/* POSIX.4 names */
#define _SC_AIO_LISTIO_MAX              18
#define _SC_AIO_MAX                     19
#define _SC_AIO_PRIO_DELTA_MAX          20
#define _SC_ASYNCHRONOUS_IO             21
#define _SC_DELAYTIMER_MAX              22
#define _SC_FSYNC                       23
#define _SC_MAPPED_FILES                24
#define _SC_MEMLOCK                     25
#define _SC_MEMLOCK_RANGE               26
#define _SC_MEMORY_PROTECTION           27
#define _SC_MESSAGE_PASSING             28
#define _SC_MQ_OPEN_MAX                 29
#define _SC_MQ_PRIO_MAX                 30
#define _SC_PRIORITIZED_IO              31
#define _SC_PRIORITY_SCHEDULING         32
#define _SC_REALTIME_SIGNALS            33
#define _SC_RTSIG_MAX                   34
#define _SC_SEMAPHORES                  35
#define _SC_SEM_NSEMS_MAX               36
#define _SC_SEM_VALUE_MAX               37
#define _SC_SHARED_MEMORY_OBJECTS       38
#define _SC_SIGQUEUE_MAX                39
#define _SC_SIGRT_MIN                   40
#define _SC_SIGRT_MAX                   41
#define _SC_SYNCHRONIZED_IO             42
#define _SC_TIMERS                      43
#define _SC_TIMER_MAX                   44
/* XPG4 names */
#define _SC_2_C_BIND                    45
#define _SC_2_C_DEV                     46
#define _SC_2_C_VERSION                 47
#define _SC_2_FORT_DEV                  48
#define _SC_2_FORT_RUN                  49
#define _SC_2_LOCALEDEF                 50
#define _SC_2_SW_DEV                    51
#define _SC_2_UPE                       52
#define _SC_2_VERSION                   53
#define _SC_BC_BASE_MAX                 54
#define _SC_BC_DIM_MAX                  55
#define _SC_BC_SCALE_MAX                56
#define _SC_BC_STRING_MAX               57
#define _SC_COLL_WEIGHTS_MAX            58
#define _SC_EXPR_NEST_MAX               59
#define _SC_LINE_MAX                    60
#define _SC_RE_DUP_MAX                  61
#define _SC_XOPEN_CRYPT                 62
#define _SC_XOPEN_ENH_I18N              63
#define _SC_XOPEN_SHM                   64

/* additional XSH4/XCU4 command names for sysconf */
#define _SC_2_CHAR_TERM                 66
#define _SC_XOPEN_XCU_VERSION           67

/* additional XPG4v2 (UNIX 95) command names */
#define _SC_ATEXIT_MAX                  76
#define _SC_IOV_MAX                     77
#define _SC_XOPEN_UNIX                  78
#define _SC_PAGE_SIZE                   _SC_PAGESIZE

/* defined for XTI (XNS Issue 5) */
#ifndef _SC_T_IOV_MAX
#define _SC_T_IOV_MAX                   79 /* Must be same in <xti.h> */
#endif                                     /* T_IOV_MAX must be <= IOV_MAX */

#define _SC_PHYS_PAGES                  500
#define _SC_AVPHYS_PAGES                501

/*
 * Hardware specific items
 * Note that not all items are supported on all architectures
 */
#define _SC_COHER_BLKSZ         503     /* Coherence block size */
#define _SC_SPLIT_CACHE         504     /* != 0 iff a split cache */
#define _SC_ICACHE_SZ           505     /* Instruction cache size (bytes) */
#define _SC_DCACHE_SZ           506     /* Data cache size (bytes) */
#define _SC_ICACHE_LINESZ       507     /* Instruction cache line size */
#define _SC_DCACHE_LINESZ       508     /* Data cache line size */
#define _SC_ICACHE_BLKSZ        509     /* Block size invalidated for icache */
#define _SC_DCACHE_BLKSZ        510     /* Block size for dcache */
#define _SC_DCACHE_TBLKSZ       511     /* Block size for dcache prefetch */
#define _SC_ICACHE_ASSOC        512     /* Icache associativity 1, 2, 3 etc */
#define _SC_DCACHE_ASSOC        513     /* Dcache associativity 1, 2, 3 etc */

#define _SC_MAXPID              514     /* maximum pid value */
#define _SC_STACK_PROT          515     /* default stack protection */
#define _SC_NPROCESSORS_MAX     516     /* maximum # of processors */
#define _SC_CPUID_MAX           517     /* maximum CPU id */
#define _SC_EPHID_MAX           518     /* maximum ephemeral id */
#define _SC_UADDR_MAX           519     /* maximum user address */

/*
 * POSIX.1c (pthreads) names. These values are defined above
 * the sub-500 range. See psarc case 1995/257.
 */
#define _SC_THREAD_DESTRUCTOR_ITERATIONS 568
#define _SC_GETGR_R_SIZE_MAX            569
#define _SC_GETPW_R_SIZE_MAX            570
#define _SC_LOGIN_NAME_MAX              571
#define _SC_THREAD_KEYS_MAX             572
#define _SC_THREAD_STACK_MIN            573
#define _SC_THREAD_THREADS_MAX          574
#define _SC_TTY_NAME_MAX                575
#define _SC_THREADS                     576
#define _SC_THREAD_ATTR_STACKADDR       577
#define _SC_THREAD_ATTR_STACKSIZE       578
#define _SC_THREAD_PRIORITY_SCHEDULING  579
#define _SC_THREAD_PRIO_INHERIT         580
#define _SC_THREAD_PRIO_PROTECT         581
#define _SC_THREAD_PROCESS_SHARED       582
#define _SC_THREAD_SAFE_FUNCTIONS       583

/* UNIX 98 */
#define _SC_XOPEN_LEGACY                717
#define _SC_XOPEN_REALTIME              718
#define _SC_XOPEN_REALTIME_THREADS      719
#define _SC_XBS5_ILP32_OFF32            720
#define _SC_XBS5_ILP32_OFFBIG           721
#define _SC_XBS5_LP64_OFF64             722
#define _SC_XBS5_LPBIG_OFFBIG           723

/* UNIX 03 */
#define _SC_2_PBS                       724
#define _SC_2_PBS_ACCOUNTING            725
#define _SC_2_PBS_CHECKPOINT            726
#define _SC_2_PBS_LOCATE                728
#define _SC_2_PBS_MESSAGE               729
#define _SC_2_PBS_TRACK                 730
#define _SC_ADVISORY_INFO               731
#define _SC_BARRIERS                    732
#define _SC_CLOCK_SELECTION             733
#define _SC_CPUTIME                     734
#define _SC_HOST_NAME_MAX               735
#define _SC_MONOTONIC_CLOCK             736
#define _SC_READER_WRITER_LOCKS         737
#define _SC_REGEXP                      738
#define _SC_SHELL                       739
#define _SC_SPAWN                       740
#define _SC_SPIN_LOCKS                  741
#define _SC_SPORADIC_SERVER             742
#define _SC_SS_REPL_MAX                 743
#define _SC_SYMLOOP_MAX                 744
#define _SC_THREAD_CPUTIME              745
#define _SC_THREAD_SPORADIC_SERVER      746
#define _SC_TIMEOUTS                    747
#define _SC_TRACE                       748
#define _SC_TRACE_EVENT_FILTER          749
#define _SC_TRACE_EVENT_NAME_MAX        750
#define _SC_TRACE_INHERIT               751
#define _SC_TRACE_LOG                   752
#define _SC_TRACE_NAME_MAX              753
#define _SC_TRACE_SYS_MAX               754
#define _SC_TRACE_USER_EVENT_MAX        755
#define _SC_TYPED_MEMORY_OBJECTS        756
#define _SC_V6_ILP32_OFF32              757
#define _SC_V6_ILP32_OFFBIG             758
#define _SC_V6_LP64_OFF64               759
#define _SC_V6_LPBIG_OFFBIG             760
#define _SC_XOPEN_STREAMS               761
#define _SC_IPV6                        762
#define _SC_RAW_SOCKETS                 763

/* command names for POSIX pathconf */

/* POSIX.1 names */
#define _PC_LINK_MAX            1
#define _PC_MAX_CANON           2
#define _PC_MAX_INPUT           3
#define _PC_NAME_MAX            4
#define _PC_PATH_MAX            5
#define _PC_PIPE_BUF            6
#define _PC_NO_TRUNC            7
#define _PC_VDISABLE            8
#define _PC_CHOWN_RESTRICTED    9
/* POSIX.4 names */
#define _PC_ASYNC_IO            10
#define _PC_PRIO_IO             11
#define _PC_SYNC_IO             12
/* UNIX 03 names */
#define _PC_ALLOC_SIZE_MIN      13
#define _PC_REC_INCR_XFER_SIZE  14
#define _PC_REC_MAX_XFER_SIZE   15
#define _PC_REC_MIN_XFER_SIZE   16
#define _PC_REC_XFER_ALIGN      17
#define _PC_SYMLINK_MAX         18
#define _PC_2_SYMLINKS          19
#define _PC_ACL_ENABLED         20
#define _PC_MIN_HOLE_SIZE       21
#define _PC_CASE_BEHAVIOR       22
#define _PC_SATTR_ENABLED       23
#define _PC_SATTR_EXISTS        24
#define _PC_ACCESS_FILTERING    25
/* UNIX 08 names */
#define _PC_TIMESTAMP_RESOLUTION 26

/*
 * Large File Summit names
 *
 * This value matches the MIPS ABI choice, but leaves a large gap in the
 * value space.
 */
#define _PC_FILESIZEBITS        67

/*
 * Extended attributes
 */
#define _PC_XATTR_ENABLED       100
#define _PC_XATTR_EXISTS        101

/*
 * If you add a _PC define above 101, you must change _PC_LAST (and truss).
 */
#define _PC_LAST                101

/*
 * Case sensitivity values (related to _PC_CASE_BEHAVIOR)
 */
#define _CASE_SENSITIVE         0x1
#define _CASE_INSENSITIVE       0x2

/*
 * The value of 0 is returned when
 * ACL's are not supported
 */
#define _ACL_ACLENT_ENABLED     0x1
#define _ACL_ACE_ENABLED        0x2

#ifndef _POSIX_VERSION
#ifdef  _XPG6
#define _POSIX_VERSION          200112L /* Supports IEEE Std 1003.1-2001 */
#else
#define _POSIX_VERSION          199506L /* Supports POSIX-1c DIS */
#endif
#endif /* _POSIX_VERSION */

#ifndef _POSIX2_VERSION
#ifdef  _XPG6
#define _POSIX2_VERSION         200112L /* Supports IEEE Std 1003.1-2001 */
#else
#define _POSIX2_VERSION         199209L /* Supports ISO POSIX-2 DIS */
#endif
#endif /* _POSIX2_VERSION */

/*
 * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications
 * should not rely on this value, it has been aligned with the current
 * standard to avoid confusion if used.
 */
#ifndef _POSIX2_C_VERSION
#ifdef  _XPG6
#define _POSIX2_C_VERSION       200112L /* Supports IEEE Std 1003.1-2001 */
#else
#define _POSIX2_C_VERSION       199209L /* Supports ISO POSIX-2 DIS */
#endif
#endif /* _POSIX2_C_VERSION */

#define _XOPEN_XPG3                     /* Supports XPG, Issue 3 */
#define _XOPEN_XPG4                     /* Supports XPG, Issue 4 */
#define _XOPEN_UNIX             0       /* Supports X/Open System Interfaces */

#ifndef _XOPEN_XCU_VERSION
#define _XOPEN_XCU_VERSION      4       /* Supports XCU4 */
#endif

#define _XOPEN_REALTIME         1       /* Supports Realtime */
#define _XOPEN_ENH_I18N         1       /* Supports Enhanced International */
#define _XOPEN_SHM              1       /* Supports Shared Memory Feature */
#define _POSIX2_CHAR_TERM       1       /* Supports at least 1 terminal type */

#ifdef _XPG6
#define _POSIX2_C_BIND    200112L       /* Supports C Language Bindings */
#define _POSIX2_C_DEV     200112L       /* Supports C language dev utility */
#define _POSIX2_FORT_RUN  200112L       /* Supports FORTRAN runtime */
#define _POSIX2_LOCALEDEF 200112L       /* Supports creation of locales */
#define _POSIX2_SW_DEV    200112L       /* Supports S/W Development Utility */
#define _POSIX2_UPE       200112L       /* Supports User Portability Utility */
#else
#define _POSIX2_C_BIND          1       /* Supports C Language Bindings */
#define _POSIX2_C_DEV           1       /* Supports C language dev utility */
#define _POSIX2_FORT_RUN        1       /* Supports FORTRAN runtime */
#define _POSIX2_LOCALEDEF       1       /* Supports creation of locales */
#define _POSIX2_SW_DEV          1       /* Supports S/W Development Utility */
#define _POSIX2_UPE             1       /* Supports User Portability Utility */
#endif /* _XPG6 */

/* UNIX 03 names */
#define _POSIX_REGEXP           1       /* Supports POSIX Regular Expressions */
#define _POSIX_SHELL            1       /* Supports POSIX shell */
#define _XOPEN_STREAMS          1       /* Supports XSI Streams Option Group */

#ifdef  __cplusplus
}
#endif

#endif  /* _SYS_UNISTD_H */