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