File: /usr/include/unistd.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: /*
       2:  * Copyright (c) 2000, 2002-2006, 2008-2010, 2012 Apple Inc. All rights reserved.
       3:  *
       4:  * @APPLE_LICENSE_HEADER_START@
       5:  * 
       6:  * This file contains Original Code and/or Modifications of Original Code
       7:  * as defined in and that are subject to the Apple Public Source License
       8:  * Version 2.0 (the 'License'). You may not use this file except in
       9:  * compliance with the License. Please obtain a copy of the License at
      10:  * http://www.opensource.apple.com/apsl/ and read it before using this
      11:  * file.
      12:  * 
      13:  * The Original Code and all software distributed under the License are
      14:  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
      15:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
      16:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
      17:  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
      18:  * Please see the License for the specific language governing rights and
      19:  * limitations under the License.
      20:  * 
      21:  * @APPLE_LICENSE_HEADER_END@
      22:  */
      23: /*-
      24:  * Copyright (c) 1998-1999 Apple Computer, Inc. All Rights Reserved
      25:  * Copyright (c) 1991, 1993, 1994
      26:  *    The Regents of the University of California.  All rights reserved.
      27:  *
      28:  * Redistribution and use in source and binary forms, with or without
      29:  * modification, are permitted provided that the following conditions
      30:  * are met:
      31:  * 1. Redistributions of source code must retain the above copyright
      32:  *    notice, this list of conditions and the following disclaimer.
      33:  * 2. Redistributions in binary form must reproduce the above copyright
      34:  *    notice, this list of conditions and the following disclaimer in the
      35:  *    documentation and/or other materials provided with the distribution.
      36:  * 3. All advertising materials mentioning features or use of this software
      37:  *    must display the following acknowledgement:
      38:  *    This product includes software developed by the University of
      39:  *    California, Berkeley and its contributors.
      40:  * 4. Neither the name of the University nor the names of its contributors
      41:  *    may be used to endorse or promote products derived from this software
      42:  *    without specific prior written permission.
      43:  *
      44:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
      45:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      46:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      47:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
      48:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
      49:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
      50:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
      51:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
      52:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
      53:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
      54:  * SUCH DAMAGE.
      55:  *
      56:  *    @(#)unistd.h    8.12 (Berkeley) 4/27/95
      57:  *
      58:  *  Copyright (c)  1998 Apple Compter, Inc.
      59:  *  All Rights Reserved
      60:  */
      61: 
      62: /* History:
      63:         7/14/99 EKN at Apple fixed getdirentriesattr from getdirentryattr
      64:         3/26/98 CHW at Apple added real interface to searchfs call
      65:       3/5/98  CHW at Apple added hfs semantic system calls headers
      66: */
      67: 
      68: #ifndef _UNISTD_H_
      69: #define    _UNISTD_H_
      70: 
      71: #include <_types.h>
      72: #include <sys/unistd.h>
      73: #include <Availability.h>
      74: #include <sys/_types/_gid_t.h>
      75: #include <sys/_types/_intptr_t.h>
      76: #include <sys/_types/_off_t.h>
      77: #include <sys/_types/_pid_t.h>
      78: /* DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
      79:  * _GCC_SIZE_T */
      80: #include <sys/_types/_size_t.h>
      81: #include <sys/_types/_ssize_t.h>
      82: #include <sys/_types/_uid_t.h>
      83: #include <sys/_types/_useconds_t.h>
      84: #include <sys/_types/_null.h>
      85: 
      86: #define     STDIN_FILENO    0    /* standard input file descriptor */
      87: #define    STDOUT_FILENO    1    /* standard output file descriptor */
      88: #define    STDERR_FILENO    2    /* standard error file descriptor */
      89: 
      90: 
      91: /* Version test macros */
      92: /* _POSIX_VERSION and _POSIX2_VERSION from sys/unistd.h */
      93: #define    _XOPEN_VERSION            600        /* [XSI] */
      94: #define    _XOPEN_XCU_VERSION        4        /* Older standard */
      95: 
      96: 
      97: /* Please keep this list in the same order as the applicable standard */
      98: #define    _POSIX_ADVISORY_INFO        (-1)        /* [ADV] */
      99: #define    _POSIX_ASYNCHRONOUS_IO        (-1)        /* [AIO] */
     100: #define    _POSIX_BARRIERS            (-1)        /* [BAR] */
     101: #define    _POSIX_CHOWN_RESTRICTED        200112L
     102: #define    _POSIX_CLOCK_SELECTION        (-1)        /* [CS] */
     103: #define    _POSIX_CPUTIME            (-1)        /* [CPT] */
     104: #define    _POSIX_FSYNC            200112L        /* [FSC] */
     105: #define    _POSIX_IPV6            200112L
     106: #define    _POSIX_JOB_CONTROL        200112L
     107: #define    _POSIX_MAPPED_FILES        200112L        /* [MF] */
     108: #define    _POSIX_MEMLOCK            (-1)        /* [ML] */
     109: #define    _POSIX_MEMLOCK_RANGE        (-1)        /* [MR] */
     110: #define    _POSIX_MEMORY_PROTECTION    200112L        /* [MPR] */
     111: #define    _POSIX_MESSAGE_PASSING        (-1)        /* [MSG] */
     112: #define    _POSIX_MONOTONIC_CLOCK        (-1)        /* [MON] */
     113: #define    _POSIX_NO_TRUNC            200112L
     114: #define    _POSIX_PRIORITIZED_IO        (-1)        /* [PIO] */
     115: #define    _POSIX_PRIORITY_SCHEDULING    (-1)        /* [PS] */
     116: #define    _POSIX_RAW_SOCKETS        (-1)        /* [RS] */
     117: #define    _POSIX_READER_WRITER_LOCKS    200112L        /* [THR] */
     118: #define    _POSIX_REALTIME_SIGNALS        (-1)        /* [RTS] */
     119: #define    _POSIX_REGEXP            200112L
     120: #define    _POSIX_SAVED_IDS        200112L        /* XXX required */
     121: #define    _POSIX_SEMAPHORES        (-1)        /* [SEM] */
     122: #define    _POSIX_SHARED_MEMORY_OBJECTS    (-1)        /* [SHM] */
     123: #define    _POSIX_SHELL            200112L
     124: #define    _POSIX_SPAWN            (-1)        /* [SPN] */
     125: #define    _POSIX_SPIN_LOCKS        (-1)        /* [SPI] */
     126: #define    _POSIX_SPORADIC_SERVER        (-1)        /* [SS] */
     127: #define    _POSIX_SYNCHRONIZED_IO        (-1)        /* [SIO] */
     128: #define    _POSIX_THREAD_ATTR_STACKADDR    200112L        /* [TSA] */
     129: #define    _POSIX_THREAD_ATTR_STACKSIZE    200112L        /* [TSS] */
     130: #define    _POSIX_THREAD_CPUTIME        (-1)        /* [TCT] */
     131: #define    _POSIX_THREAD_PRIO_INHERIT    (-1)        /* [TPI] */
     132: #define    _POSIX_THREAD_PRIO_PROTECT    (-1)        /* [TPP] */
     133: #define    _POSIX_THREAD_PRIORITY_SCHEDULING    (-1)    /* [TPS] */
     134: #define    _POSIX_THREAD_PROCESS_SHARED    200112L        /* [TSH] */
     135: #define    _POSIX_THREAD_SAFE_FUNCTIONS    200112L        /* [TSF] */
     136: #define    _POSIX_THREAD_SPORADIC_SERVER    (-1)        /* [TSP] */
     137: #define    _POSIX_THREADS            200112L        /* [THR] */
     138: #define    _POSIX_TIMEOUTS            (-1)        /* [TMO] */
     139: #define    _POSIX_TIMERS            (-1)        /* [TMR] */
     140: #define    _POSIX_TRACE            (-1)        /* [TRC] */
     141: #define    _POSIX_TRACE_EVENT_FILTER    (-1)        /* [TEF] */
     142: #define    _POSIX_TRACE_INHERIT        (-1)        /* [TRI] */
     143: #define    _POSIX_TRACE_LOG        (-1)        /* [TRL] */
     144: #define    _POSIX_TYPED_MEMORY_OBJECTS    (-1)        /* [TYM] */
     145: #ifndef _POSIX_VDISABLE
     146: #define    _POSIX_VDISABLE            0xff        /* same as sys/termios.h */
     147: #endif /* _POSIX_VDISABLE */
     148: 
     149: #if __DARWIN_C_LEVEL >= 199209L
     150: #define    _POSIX2_C_BIND            200112L
     151: #define    _POSIX2_C_DEV            200112L        /* c99 command */
     152: #define    _POSIX2_CHAR_TERM        200112L
     153: #define    _POSIX2_FORT_DEV        (-1)        /* fort77 command */
     154: #define    _POSIX2_FORT_RUN        200112L
     155: #define    _POSIX2_LOCALEDEF        200112L        /* localedef command */
     156: #define    _POSIX2_PBS            (-1)
     157: #define    _POSIX2_PBS_ACCOUNTING        (-1)
     158: #define    _POSIX2_PBS_CHECKPOINT        (-1)
     159: #define    _POSIX2_PBS_LOCATE        (-1)
     160: #define    _POSIX2_PBS_MESSAGE        (-1)
     161: #define    _POSIX2_PBS_TRACK        (-1)
     162: #define    _POSIX2_SW_DEV            200112L
     163: #define    _POSIX2_UPE            200112L    /* XXXX no fc, newgrp, tabs */
     164: #endif /* __DARWIN_C_LEVEL */
     165: 
     166: #define    __ILP32_OFF32          (-1)
     167: #define    __ILP32_OFFBIG         (1)
     168: #define    __LP64_OFF64           (1)
     169: #define    __LPBIG_OFFBIG         (1)
     170: 
     171: #if __DARWIN_C_LEVEL >= 200112L
     172: #define    _POSIX_V6_ILP32_OFF32        __ILP32_OFF32
     173: #define    _POSIX_V6_ILP32_OFFBIG        __ILP32_OFFBIG
     174: #define    _POSIX_V6_LP64_OFF64        __LP64_OFF64
     175: #define    _POSIX_V6_LPBIG_OFFBIG        __LPBIG_OFFBIG
     176: #endif /* __DARWIN_C_LEVEL >= 200112L */
     177: 
     178: #if __DARWIN_C_LEVEL >= 200809L
     179: #define    _POSIX_V7_ILP32_OFF32        __ILP32_OFF32
     180: #define    _POSIX_V7_ILP32_OFFBIG        __ILP32_OFFBIG
     181: #define    _POSIX_V7_LP64_OFF64        __LP64_OFF64
     182: #define    _POSIX_V7_LPBIG_OFFBIG        __LPBIG_OFFBIG
     183: #endif /* __DARWIN_C_LEVEL >= 200809L */
     184: 
     185: #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
     186: #define    _V6_ILP32_OFF32             __ILP32_OFF32
     187: #define    _V6_ILP32_OFFBIG            __ILP32_OFFBIG
     188: #define    _V6_LP64_OFF64              __LP64_OFF64
     189: #define    _V6_LPBIG_OFFBIG            __LPBIG_OFFBIG
     190: #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
     191: 
     192: #if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
     193: /* Removed in Issue 7 */
     194: #define    _XBS5_ILP32_OFF32            __ILP32_OFF32
     195: #define    _XBS5_ILP32_OFFBIG            __ILP32_OFFBIG
     196: #define    _XBS5_LP64_OFF64            __LP64_OFF64
     197: #define    _XBS5_LPBIG_OFFBIG            __LPBIG_OFFBIG
     198: #endif /* __DARWIN_C_LEVEL < 200809L */
     199: 
     200: #if __DARWIN_C_LEVEL >= 199506L /* This really should be XSI */ 
     201: #define    _XOPEN_CRYPT            (1)
     202: #define    _XOPEN_ENH_I18N            (1)        /* XXX required */
     203: #define    _XOPEN_LEGACY            (-1)    /* no ftime gcvt, wcswcs */
     204: #define    _XOPEN_REALTIME            (-1)    /* no q'ed signals, mq_* */
     205: #define    _XOPEN_REALTIME_THREADS        (-1)    /* no posix_spawn, et. al. */
     206: #define    _XOPEN_SHM            (1)
     207: #define    _XOPEN_STREAMS            (-1)   /* Issue 6 */
     208: #define    _XOPEN_UNIX            (1)
     209: #endif /* XSI */
     210: 
     211: /* configurable system variables */
     212: #define    _SC_ARG_MAX             1
     213: #define    _SC_CHILD_MAX             2
     214: #define    _SC_CLK_TCK             3
     215: #define    _SC_NGROUPS_MAX             4
     216: #define    _SC_OPEN_MAX             5
     217: #define    _SC_JOB_CONTROL             6
     218: #define    _SC_SAVED_IDS             7
     219: #define    _SC_VERSION             8
     220: #define    _SC_BC_BASE_MAX             9
     221: #define    _SC_BC_DIM_MAX            10
     222: #define    _SC_BC_SCALE_MAX        11
     223: #define    _SC_BC_STRING_MAX        12
     224: #define    _SC_COLL_WEIGHTS_MAX        13
     225: #define    _SC_EXPR_NEST_MAX        14
     226: #define    _SC_LINE_MAX            15
     227: #define    _SC_RE_DUP_MAX            16
     228: #define    _SC_2_VERSION            17
     229: #define    _SC_2_C_BIND            18
     230: #define    _SC_2_C_DEV            19
     231: #define    _SC_2_CHAR_TERM            20
     232: #define    _SC_2_FORT_DEV            21
     233: #define    _SC_2_FORT_RUN            22
     234: #define    _SC_2_LOCALEDEF            23
     235: #define    _SC_2_SW_DEV            24
     236: #define    _SC_2_UPE            25
     237: #define    _SC_STREAM_MAX            26
     238: #define    _SC_TZNAME_MAX            27
     239: 
     240: #if __DARWIN_C_LEVEL >= 199309L
     241: #define    _SC_ASYNCHRONOUS_IO        28
     242: #define    _SC_PAGESIZE            29
     243: #define    _SC_MEMLOCK            30
     244: #define    _SC_MEMLOCK_RANGE        31
     245: #define    _SC_MEMORY_PROTECTION        32
     246: #define    _SC_MESSAGE_PASSING        33
     247: #define    _SC_PRIORITIZED_IO        34
     248: #define    _SC_PRIORITY_SCHEDULING        35
     249: #define    _SC_REALTIME_SIGNALS        36
     250: #define    _SC_SEMAPHORES            37
     251: #define    _SC_FSYNC            38
     252: #define    _SC_SHARED_MEMORY_OBJECTS     39
     253: #define    _SC_SYNCHRONIZED_IO        40
     254: #define    _SC_TIMERS            41
     255: #define    _SC_AIO_LISTIO_MAX        42
     256: #define    _SC_AIO_MAX            43
     257: #define    _SC_AIO_PRIO_DELTA_MAX        44
     258: #define    _SC_DELAYTIMER_MAX        45
     259: #define    _SC_MQ_OPEN_MAX            46
     260: #define    _SC_MAPPED_FILES        47    /* swap _SC_PAGESIZE vs. BSD */
     261: #define    _SC_RTSIG_MAX            48
     262: #define    _SC_SEM_NSEMS_MAX        49
     263: #define    _SC_SEM_VALUE_MAX        50
     264: #define    _SC_SIGQUEUE_MAX        51
     265: #define    _SC_TIMER_MAX            52
     266: #endif /* __DARWIN_C_LEVEL >= 199309L */
     267: 
     268: #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
     269: #define    _SC_NPROCESSORS_CONF        57
     270: #define    _SC_NPROCESSORS_ONLN        58
     271: #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
     272: 
     273: #if __DARWIN_C_LEVEL >= 200112L
     274: #define    _SC_2_PBS            59
     275: #define    _SC_2_PBS_ACCOUNTING        60
     276: #define    _SC_2_PBS_CHECKPOINT        61
     277: #define    _SC_2_PBS_LOCATE        62
     278: #define    _SC_2_PBS_MESSAGE        63
     279: #define    _SC_2_PBS_TRACK            64
     280: #define    _SC_ADVISORY_INFO        65
     281: #define    _SC_BARRIERS            66
     282: #define    _SC_CLOCK_SELECTION        67
     283: #define    _SC_CPUTIME            68
     284: #define    _SC_FILE_LOCKING        69
     285: #define    _SC_GETGR_R_SIZE_MAX        70
     286: #define    _SC_GETPW_R_SIZE_MAX        71
     287: #define    _SC_HOST_NAME_MAX        72
     288: #define    _SC_LOGIN_NAME_MAX        73
     289: #define    _SC_MONOTONIC_CLOCK        74
     290: #define    _SC_MQ_PRIO_MAX            75
     291: #define    _SC_READER_WRITER_LOCKS        76
     292: #define    _SC_REGEXP            77
     293: #define    _SC_SHELL            78
     294: #define    _SC_SPAWN            79
     295: #define    _SC_SPIN_LOCKS            80
     296: #define    _SC_SPORADIC_SERVER        81
     297: #define    _SC_THREAD_ATTR_STACKADDR    82
     298: #define    _SC_THREAD_ATTR_STACKSIZE    83
     299: #define    _SC_THREAD_CPUTIME        84
     300: #define    _SC_THREAD_DESTRUCTOR_ITERATIONS 85
     301: #define    _SC_THREAD_KEYS_MAX        86
     302: #define    _SC_THREAD_PRIO_INHERIT        87
     303: #define    _SC_THREAD_PRIO_PROTECT        88
     304: #define    _SC_THREAD_PRIORITY_SCHEDULING    89
     305: #define    _SC_THREAD_PROCESS_SHARED    90
     306: #define    _SC_THREAD_SAFE_FUNCTIONS    91
     307: #define    _SC_THREAD_SPORADIC_SERVER    92
     308: #define    _SC_THREAD_STACK_MIN        93
     309: #define    _SC_THREAD_THREADS_MAX        94
     310: #define    _SC_TIMEOUTS            95
     311: #define    _SC_THREADS            96
     312: #define    _SC_TRACE            97
     313: #define    _SC_TRACE_EVENT_FILTER        98
     314: #define    _SC_TRACE_INHERIT        99
     315: #define    _SC_TRACE_LOG            100
     316: #define    _SC_TTY_NAME_MAX        101
     317: #define    _SC_TYPED_MEMORY_OBJECTS    102
     318: #define    _SC_V6_ILP32_OFF32        103
     319: #define    _SC_V6_ILP32_OFFBIG        104
     320: #define    _SC_V6_LP64_OFF64        105
     321: #define    _SC_V6_LPBIG_OFFBIG        106
     322: #define    _SC_IPV6            118
     323: #define    _SC_RAW_SOCKETS            119
     324: #define    _SC_SYMLOOP_MAX            120
     325: #endif /* __DARWIN_C_LEVEL >= 200112L */
     326: 
     327: #if __DARWIN_C_LEVEL >= 199506L /* Really XSI */
     328: #define    _SC_ATEXIT_MAX            107
     329: #define    _SC_IOV_MAX            56
     330: #define    _SC_PAGE_SIZE            _SC_PAGESIZE
     331: #define    _SC_XOPEN_CRYPT            108
     332: #define    _SC_XOPEN_ENH_I18N        109
     333: #define    _SC_XOPEN_LEGACY        110      /* Issue 6 */
     334: #define    _SC_XOPEN_REALTIME        111      /* Issue 6 */
     335: #define    _SC_XOPEN_REALTIME_THREADS    112  /* Issue 6 */
     336: #define    _SC_XOPEN_SHM            113
     337: #define    _SC_XOPEN_STREAMS        114      /* Issue 6 */
     338: #define    _SC_XOPEN_UNIX            115
     339: #define    _SC_XOPEN_VERSION        116
     340: #define    _SC_XOPEN_XCU_VERSION        121
     341: #endif /* XSI */
     342: 
     343: #if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
     344: /* Removed in Issue 7 */
     345: #define    _SC_XBS5_ILP32_OFF32        122
     346: #define    _SC_XBS5_ILP32_OFFBIG        123
     347: #define    _SC_XBS5_LP64_OFF64        124
     348: #define    _SC_XBS5_LPBIG_OFFBIG        125
     349: #endif /* __DARWIN_C_LEVEL <= 200809L */
     350: 
     351: #if __DARWIN_C_LEVEL >= 200112L
     352: #define    _SC_SS_REPL_MAX            126
     353: #define    _SC_TRACE_EVENT_NAME_MAX    127
     354: #define    _SC_TRACE_NAME_MAX        128
     355: #define    _SC_TRACE_SYS_MAX        129
     356: #define    _SC_TRACE_USER_EVENT_MAX    130
     357: #endif
     358: 
     359: #if __DARWIN_C_LEVEL < 200112L || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
     360: /* Removed in Issue 6 */
     361: #define    _SC_PASS_MAX            131
     362: #endif
     363: 
     364: #if __DARWIN_C_LEVEL >= 199209L
     365: #ifndef _CS_PATH /* Defined in <sys/unistd.h> */
     366: #define    _CS_PATH                1
     367: #endif
     368: #endif
     369: 
     370: #if __DARWIN_C_LEVEL >= 200112
     371: #define    _CS_POSIX_V6_ILP32_OFF32_CFLAGS        2
     372: #define    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS    3
     373: #define    _CS_POSIX_V6_ILP32_OFF32_LIBS        4
     374: #define    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS    5
     375: #define    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS    6
     376: #define    _CS_POSIX_V6_ILP32_OFFBIG_LIBS        7
     377: #define    _CS_POSIX_V6_LP64_OFF64_CFLAGS        8
     378: #define    _CS_POSIX_V6_LP64_OFF64_LDFLAGS        9
     379: #define    _CS_POSIX_V6_LP64_OFF64_LIBS        10
     380: #define    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS    11
     381: #define    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS    12
     382: #define    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS        13
     383: #define    _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS    14
     384: #endif
     385: 
     386: #if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
     387: /* Removed in Issue 7 */
     388: #define    _CS_XBS5_ILP32_OFF32_CFLAGS        20
     389: #define    _CS_XBS5_ILP32_OFF32_LDFLAGS        21
     390: #define    _CS_XBS5_ILP32_OFF32_LIBS        22
     391: #define    _CS_XBS5_ILP32_OFF32_LINTFLAGS        23
     392: #define    _CS_XBS5_ILP32_OFFBIG_CFLAGS        24
     393: #define    _CS_XBS5_ILP32_OFFBIG_LDFLAGS        25
     394: #define    _CS_XBS5_ILP32_OFFBIG_LIBS        26
     395: #define    _CS_XBS5_ILP32_OFFBIG_LINTFLAGS        27
     396: #define    _CS_XBS5_LP64_OFF64_CFLAGS        28
     397: #define    _CS_XBS5_LP64_OFF64_LDFLAGS        29
     398: #define    _CS_XBS5_LP64_OFF64_LIBS        30
     399: #define    _CS_XBS5_LP64_OFF64_LINTFLAGS        31
     400: #define    _CS_XBS5_LPBIG_OFFBIG_CFLAGS        32
     401: #define    _CS_XBS5_LPBIG_OFFBIG_LDFLAGS        33
     402: #define    _CS_XBS5_LPBIG_OFFBIG_LIBS        34
     403: #define    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS        35
     404: #endif
     405: 
     406: #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
     407: #define    _CS_DARWIN_USER_DIR            65536
     408: #define    _CS_DARWIN_USER_TEMP_DIR        65537
     409: #define    _CS_DARWIN_USER_CACHE_DIR        65538
     410: #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
     411: 
     412: 
     413: #ifdef _DARWIN_UNLIMITED_GETGROUPS
     414: #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2
     415: #error "_DARWIN_UNLIMITED_GETGROUPS specified, but -miphoneos-version-min version does not support it."
     416: #elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_6
     417: #error "_DARWIN_UNLIMITED_GETGROUPS specified, but -mmacosx-version-min version does not support it."
     418: #endif
     419: #endif
     420: 
     421: /* POSIX.1-1990 */
     422: 
     423: __BEGIN_DECLS
     424: void     _exit(int) __dead2;
     425: int     access(const char *, int);
     426: unsigned int
     427:      alarm(unsigned int);
     428: int     chdir(const char *);
     429: int     chown(const char *, uid_t, gid_t);
     430: 
     431: int     close(int) __DARWIN_ALIAS_C(close);
     432: 
     433: int     dup(int);
     434: int     dup2(int, int);
     435: int     execl(const char *, const char *, ...);
     436: int     execle(const char *, const char *, ...);
     437: int     execlp(const char *, const char *, ...);
     438: int     execv(const char *, char * const *);
     439: int     execve(const char *, char * const *, char * const *);
     440: int     execvp(const char *, char * const *);
     441: pid_t     fork(void);
     442: long     fpathconf(int, int);
     443: char    *getcwd(char *, size_t);
     444: gid_t     getegid(void);
     445: uid_t     geteuid(void);
     446: gid_t     getgid(void);
     447: #if defined(_DARWIN_UNLIMITED_GETGROUPS) || defined(_DARWIN_C_SOURCE)
     448: int     getgroups(int, gid_t []) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(getgroups));
     449: #else /* !_DARWIN_UNLIMITED_GETGROUPS && !_DARWIN_C_SOURCE */
     450: int     getgroups(int, gid_t []);
     451: #endif /* _DARWIN_UNLIMITED_GETGROUPS || _DARWIN_C_SOURCE */
     452: char    *getlogin(void);
     453: pid_t     getpgrp(void);
     454: pid_t     getpid(void);
     455: pid_t     getppid(void);
     456: uid_t     getuid(void);
     457: int     isatty(int);
     458: int     link(const char *, const char *);
     459: off_t     lseek(int, off_t, int);
     460: long     pathconf(const char *, int);
     461: 
     462: int     pause(void) __DARWIN_ALIAS_C(pause);
     463: 
     464: int     pipe(int [2]);
     465: 
     466: ssize_t     read(int, void *, size_t) __DARWIN_ALIAS_C(read);
     467: 
     468: int     rmdir(const char *);
     469: int     setgid(gid_t);
     470: int     setpgid(pid_t, pid_t);
     471: pid_t     setsid(void);
     472: int     setuid(uid_t);
     473: 
     474: unsigned int
     475:      sleep(unsigned int) __DARWIN_ALIAS_C(sleep);
     476: 
     477: long     sysconf(int);
     478: pid_t     tcgetpgrp(int);
     479: int     tcsetpgrp(int, pid_t);
     480: char    *ttyname(int);
     481: 
     482: #if __DARWIN_UNIX03
     483: int     ttyname_r(int, char *, size_t) __DARWIN_ALIAS(ttyname_r);
     484: #else /* !__DARWIN_UNIX03 */
     485: char    *ttyname_r(int, char *, size_t);
     486: #endif /* __DARWIN_UNIX03 */
     487: 
     488: int     unlink(const char *);
     489: 
     490: ssize_t     write(int, const void *, size_t) __DARWIN_ALIAS_C(write);
     491: __END_DECLS
     492: 
     493: 
     494: 
     495: /* Additional functionality provided by:
     496:  * POSIX.2-1992 C Language Binding Option
     497:  */
     498: 
     499: #if __DARWIN_C_LEVEL >= 199209L
     500: __BEGIN_DECLS
     501: size_t     confstr(int, char *, size_t) __DARWIN_ALIAS(confstr);
     502: 
     503: int     getopt(int, char * const [], const char *) __DARWIN_ALIAS(getopt);
     504: 
     505: extern char *optarg;            /* getopt(3) external variables */
     506: extern int optind, opterr, optopt;
     507: __END_DECLS
     508: #endif /* __DARWIN_C_LEVEL >= 199209L */
     509: 
     510: 
     511: 
     512: /* Additional functionality provided by:
     513:  * POSIX.1c-1995,
     514:  * POSIX.1i-1995,
     515:  * and the omnibus ISO/IEC 9945-1: 1996
     516:  */
     517: 
     518: #if __DARWIN_C_LEVEL >= 199506L
     519:                                /* These F_* are really XSI or Issue 6 */
     520: #define F_ULOCK         0      /* unlock locked section */
     521: #define    F_LOCK          1      /* lock a section for exclusive use */
     522: #define    F_TLOCK         2      /* test and lock a section for exclusive use */
     523: #define    F_TEST          3      /* test a section for locks by other procs */
     524: 
     525:  __BEGIN_DECLS
     526: 
     527: /* Begin XSI */
     528: /* Removed in Issue 6 */
     529: #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
     530: #if !defined(_POSIX_C_SOURCE)
     531: __deprecated
     532: #endif
     533: void    *brk(const void *);
     534: int     chroot(const char *) __POSIX_C_DEPRECATED(199506L);
     535: #endif
     536: 
     537: char    *crypt(const char *, const char *);
     538: #ifndef __CTERMID_DEFINED
     539: /* Multiply defined in stdio.h and unistd.h by SUS */
     540: #define __CTERMID_DEFINED 1
     541: char    *ctermid(char *);
     542: #endif
     543: #if __DARWIN_UNIX03
     544: void     encrypt(char *, int) __DARWIN_ALIAS(encrypt);
     545: #else /* !__DARWIN_UNIX03 */
     546: int     encrypt(char *, int);
     547: #endif /* __DARWIN_UNIX03 */
     548: int     fchdir(int);
     549: long     gethostid(void);
     550: pid_t     getpgid(pid_t);
     551: pid_t     getsid(pid_t);
     552: 
     553: /* Removed in Issue 6 */
     554: #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
     555: int     getdtablesize(void) __POSIX_C_DEPRECATED(199506L);
     556: int     getpagesize(void) __pure2 __POSIX_C_DEPRECATED(199506L);
     557: char    *getpass(const char *) __POSIX_C_DEPRECATED(199506L);
     558: #endif
     559: 
     560: /* Removed in Issue 7 */
     561: #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200809L
     562: char    *getwd(char *) __POSIX_C_DEPRECATED(200112L); /* obsoleted by getcwd() */
     563: #endif
     564: 
     565: int     lchown(const char *, uid_t, gid_t) __DARWIN_ALIAS(lchown);
     566: 
     567: int     lockf(int, int, off_t) __DARWIN_ALIAS_C(lockf);
     568: 
     569: int     nice(int) __DARWIN_ALIAS(nice);
     570: 
     571: ssize_t     pread(int, void *, size_t, off_t) __DARWIN_ALIAS_C(pread);
     572: 
     573: ssize_t     pwrite(int, const void *, size_t, off_t) __DARWIN_ALIAS_C(pwrite);
     574: 
     575: /* Removed in Issue 6 */
     576: #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
     577: /* Note that Issue 5 changed the argument as intprt_t,
     578:  * but we keep it as int for binary compatability. */
     579: #if !defined(_POSIX_C_SOURCE)
     580: __deprecated
     581: #endif
     582: void    *sbrk(int);
     583: #endif
     584: 
     585: #if __DARWIN_UNIX03
     586: pid_t     setpgrp(void) __DARWIN_ALIAS(setpgrp);
     587: #else /* !__DARWIN_UNIX03 */
     588: int     setpgrp(pid_t pid, pid_t pgrp);    /* obsoleted by setpgid() */
     589: #endif /* __DARWIN_UNIX03 */
     590: 
     591: int     setregid(gid_t, gid_t) __DARWIN_ALIAS(setregid);
     592: 
     593: int     setreuid(uid_t, uid_t) __DARWIN_ALIAS(setreuid);
     594: 
     595: void     swab(const void * __restrict, void * __restrict, ssize_t);
     596: void     sync(void);
     597: int     truncate(const char *, off_t);
     598: useconds_t     ualarm(useconds_t, useconds_t);
     599: int     usleep(useconds_t) __DARWIN_ALIAS_C(usleep);
     600: pid_t     vfork(void);
     601: /* End XSI */
     602: 
     603: int     fsync(int) __DARWIN_ALIAS_C(fsync);
     604: 
     605: int     ftruncate(int, off_t);
     606: int     getlogin_r(char *, size_t);
     607: __END_DECLS
     608: #endif /* __DARWIN_C_LEVEL >= 199506L */
     609: 
     610: 
     611: 
     612: /* Additional functionality provided by:
     613:  * POSIX.1-2001
     614:  * ISO C99
     615:  */
     616: 
     617: #if __DARWIN_C_LEVEL >= 200112L
     618: __BEGIN_DECLS
     619: int     fchown(int, uid_t, gid_t);
     620: int     gethostname(char *, size_t);
     621: ssize_t  readlink(const char * __restrict, char * __restrict, size_t);
     622: int     setegid(gid_t);
     623: int     seteuid(uid_t);
     624: int     symlink(const char *, const char *);
     625: __END_DECLS
     626: #endif /* __DARWIN_C_LEVEL >= 200112L */
     627: 
     628: 
     629: 
     630: /* Darwin extensions */
     631: 
     632: #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
     633: #include <sys/select.h>
     634: 
     635: #include <sys/_types/_dev_t.h>
     636: #include <sys/_types/_mode_t.h>
     637: #include <sys/_types/_uuid_t.h>
     638: 
     639: __BEGIN_DECLS
     640: void     _Exit(int) __dead2;
     641: int     accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t);
     642: int     acct(const char *);
     643: int     add_profil(char *, size_t, unsigned long, unsigned int);
     644: void     endusershell(void);
     645: int     execvP(const char *, const char *, char * const *);
     646: char    *fflagstostr(unsigned long);
     647: int     getdomainname(char *, int);
     648: int     getgrouplist(const char *, int, int *, int *);
     649: #if defined(__has_include)
     650: #if __has_include(<gethostuuid_private.h>)
     651: #include <gethostuuid_private.h>
     652: #else
     653: #include <gethostuuid.h>
     654: #endif
     655: #else
     656: #include <gethostuuid.h>
     657: #endif
     658: mode_t     getmode(const void *, mode_t);
     659: int     getpeereid(int, uid_t *, gid_t *);
     660: int     getsgroups_np(int *, uuid_t);
     661: char    *getusershell(void);
     662: int     getwgroups_np(int *, uuid_t);
     663: int     initgroups(const char *, int);
     664: int     iruserok(unsigned long, int, const char *, const char *);
     665: int     iruserok_sa(const void *, int, int, const char *, const char *);
     666: int     issetugid(void);
     667: char    *mkdtemp(char *);
     668: int     mknod(const char *, mode_t, dev_t);
     669: int     mkpath_np(const char *path, mode_t omode) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_5_0); /* returns errno */
     670: int     mkstemp(char *);
     671: int     mkstemps(char *, int);
     672: char    *mktemp(char *);
     673: int     nfssvc(int, void *);
     674: int     profil(char *, size_t, unsigned long, unsigned int);
     675: int     pthread_setugid_np(uid_t, gid_t);
     676: int     pthread_getugid_np( uid_t *, gid_t *);
     677: int     rcmd(char **, int, const char *, const char *, const char *, int *);
     678: int     rcmd_af(char **, int, const char *, const char *, const char *, int *,
     679:         int);
     680: int     reboot(int);
     681: int     revoke(const char *);
     682: int     rresvport(int *);
     683: int     rresvport_af(int *, int);
     684: int     ruserok(const char *, int, const char *, const char *);
     685: int     setdomainname(const char *, int);
     686: int     setgroups(int, const gid_t *);
     687: void     sethostid(long);
     688: int     sethostname(const char *, int);
     689: #if __DARWIN_UNIX03
     690: void     setkey(const char *) __DARWIN_ALIAS(setkey);
     691: #else /* !__DARWIN_UNIX03 */
     692: int     setkey(const char *);
     693: #endif /* __DARWIN_UNIX03 */
     694: int     setlogin(const char *);
     695: void    *setmode(const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(setmode));
     696: int     setrgid(gid_t);
     697: int     setruid(uid_t);
     698: int     setsgroups_np(int, const uuid_t);
     699: void     setusershell(void);
     700: int     setwgroups_np(int, const uuid_t);
     701: int     strtofflags(char **, unsigned long *, unsigned long *);
     702: int     swapon(const char *);
     703: int     syscall(int, ...);
     704: int     ttyslot(void);
     705: int     undelete(const char *);
     706: int     unwhiteout(const char *);
     707: void    *valloc(size_t);            
     708: 
     709: extern char *suboptarg;            /* getsubopt(3) external variable */
     710: int     getsubopt(char **, char * const *, char **);
     711: 
     712: /*  HFS & HFS Plus semantics system calls go here */
     713: #ifdef __LP64__
     714: int    fgetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
     715: int    fsetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
     716: int    getattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(getattrlist);
     717: int    setattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(setattrlist);
     718: int exchangedata(const char*,const char*,unsigned int);
     719: int    getdirentriesattr(int,void*,void*,size_t,unsigned int*,unsigned int*,unsigned int*,unsigned int);
     720: 
     721: #else /* __LP64__ */
     722: int    fgetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
     723: int    fsetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
     724: int    getattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(getattrlist);
     725: int    setattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(setattrlist);
     726: int exchangedata(const char*,const char*,unsigned long);
     727: int    getdirentriesattr(int,void*,void*,size_t,unsigned long*,unsigned long*,unsigned long*,unsigned long);
     728: 
     729: #endif /* __LP64__ */
     730: 
     731: struct fssearchblock;
     732: struct searchstate;
     733: 
     734: int     searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *);
     735: int     fsctl(const char *,unsigned long,void*,unsigned int);
     736: int     ffsctl(int,unsigned long,void*,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
     737: 
     738: #define    SYNC_VOLUME_FULLSYNC    0x01    /* Flush data and metadata to platter, not just to disk cache */
     739: #define SYNC_VOLUME_WAIT    0x02    /* Wait for sync to complete */
     740: 
     741: int    fsync_volume_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
     742: int    sync_volume_np(const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
     743: 
     744: extern int optreset;
     745: 
     746: __END_DECLS
     747: #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
     748: 
     749: #endif /* _UNISTD_H_ */
     750: