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 - 2008 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) 1990, 1993 25: * The Regents of the University of California. All rights reserved. 26: * 27: * Redistribution and use in source and binary forms, with or without 28: * modification, are permitted provided that the following conditions 29: * are met: 30: * 1. Redistributions of source code must retain the above copyright 31: * notice, this list of conditions and the following disclaimer. 32: * 2. Redistributions in binary form must reproduce the above copyright 33: * notice, this list of conditions and the following disclaimer in the 34: * documentation and/or other materials provided with the distribution. 35: * 3. All advertising materials mentioning features or use of this software 36: * must display the following acknowledgement: 37: * This product includes software developed by the University of 38: * California, Berkeley and its contributors. 39: * 4. Neither the name of the University nor the names of its contributors 40: * may be used to endorse or promote products derived from this software 41: * without specific prior written permission. 42: * 43: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 44: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 45: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 46: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 47: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 48: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 49: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 50: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 51: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 52: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 53: * SUCH DAMAGE. 54: * 55: * @(#)stdlib.h 8.5 (Berkeley) 5/19/95 56: */ 57: 58: #ifndef _STDLIB_H_ 59: #define _STDLIB_H_ 60: 61: #include <Availability.h> 62: 63: #include <_types.h> 64: #if !defined(_ANSI_SOURCE) 65: #include <sys/wait.h> 66: #if (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) 67: #include <alloca.h> 68: #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ 69: #endif /* !_ANSI_SOURCE */ 70: 71: /* DO NOT REMOVE THIS COMMENT: fixincludes needs to see: 72: * _GCC_SIZE_T */ 73: #include <sys/_types/_size_t.h> 74: 75: #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) 76: #include <sys/_types/_ct_rune_t.h> 77: #include <sys/_types/_rune_t.h> 78: #endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ 79: 80: #include <sys/_types/_wchar_t.h> 81: 82: typedef struct { 83: int quot; /* quotient */ 84: int rem; /* remainder */ 85: } div_t; 86: 87: typedef struct { 88: long quot; /* quotient */ 89: long rem; /* remainder */ 90: } ldiv_t; 91: 92: #if !__DARWIN_NO_LONG_LONG 93: typedef struct { 94: long long quot; 95: long long rem; 96: } lldiv_t; 97: #endif /* !__DARWIN_NO_LONG_LONG */ 98: 99: #include <sys/_types/_null.h> 100: 101: #define EXIT_FAILURE 1 102: #define EXIT_SUCCESS 0 103: 104: #define RAND_MAX 0x7fffffff 105: 106: #ifdef _USE_EXTENDED_LOCALES_ 107: #include <_xlocale.h> 108: #endif /* _USE_EXTENDED_LOCALES_ */ 109: 110: #ifndef MB_CUR_MAX 111: #ifdef _USE_EXTENDED_LOCALES_ 112: #define MB_CUR_MAX (___mb_cur_max()) 113: #ifndef MB_CUR_MAX_L 114: #define MB_CUR_MAX_L(x) (___mb_cur_max_l(x)) 115: #endif /* !MB_CUR_MAX_L */ 116: #else /* !_USE_EXTENDED_LOCALES_ */ 117: extern int __mb_cur_max; 118: #define MB_CUR_MAX __mb_cur_max 119: #endif /* _USE_EXTENDED_LOCALES_ */ 120: #endif /* MB_CUR_MAX */ 121: 122: #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) \ 123: && defined(_USE_EXTENDED_LOCALES_) && !defined(MB_CUR_MAX_L) 124: #define MB_CUR_MAX_L(x) (___mb_cur_max_l(x)) 125: #endif 126: 127: __BEGIN_DECLS 128: void abort(void) __dead2; 129: int abs(int) __pure2; 130: int atexit(void (*)(void)); 131: double atof(const char *); 132: int atoi(const char *); 133: long atol(const char *); 134: #if !__DARWIN_NO_LONG_LONG 135: long long 136: atoll(const char *); 137: #endif /* !__DARWIN_NO_LONG_LONG */ 138: void *bsearch(const void *, const void *, size_t, 139: size_t, int (*)(const void *, const void *)); 140: void *calloc(size_t, size_t); 141: div_t div(int, int) __pure2; 142: void exit(int) __dead2; 143: void free(void *); 144: char *getenv(const char *); 145: long labs(long) __pure2; 146: ldiv_t ldiv(long, long) __pure2; 147: #if !__DARWIN_NO_LONG_LONG 148: long long 149: llabs(long long); 150: lldiv_t lldiv(long long, long long); 151: #endif /* !__DARWIN_NO_LONG_LONG */ 152: void *malloc(size_t); 153: int mblen(const char *, size_t); 154: size_t mbstowcs(wchar_t * __restrict , const char * __restrict, size_t); 155: int mbtowc(wchar_t * __restrict, const char * __restrict, size_t); 156: int posix_memalign(void **, size_t, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); 157: void qsort(void *, size_t, size_t, 158: int (*)(const void *, const void *)); 159: int rand(void); 160: void *realloc(void *, size_t); 161: void srand(unsigned); 162: double strtod(const char *, char **) __DARWIN_ALIAS(strtod); 163: float strtof(const char *, char **) __DARWIN_ALIAS(strtof); 164: long strtol(const char *, char **, int); 165: long double 166: strtold(const char *, char **); 167: #if !__DARWIN_NO_LONG_LONG 168: long long 169: strtoll(const char *, char **, int); 170: #endif /* !__DARWIN_NO_LONG_LONG */ 171: unsigned long 172: strtoul(const char *, char **, int); 173: #if !__DARWIN_NO_LONG_LONG 174: unsigned long long 175: strtoull(const char *, char **, int); 176: #endif /* !__DARWIN_NO_LONG_LONG */ 177: int system(const char *) __DARWIN_ALIAS_C(system) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0,__MAC_NA,__IPHONE_2_0,__IPHONE_8_0, "Use posix_spawn APIs instead.") __WATCHOS_PROHIBITED __TVOS_PROHIBITED; 178: size_t wcstombs(char * __restrict, const wchar_t * __restrict, size_t); 179: int wctomb(char *, wchar_t); 180: 181: #ifndef _ANSI_SOURCE 182: void _Exit(int) __dead2; 183: long a64l(const char *); 184: double drand48(void); 185: char *ecvt(double, int, int *__restrict, int *__restrict); /* LEGACY */ 186: double erand48(unsigned short[3]); 187: char *fcvt(double, int, int *__restrict, int *__restrict); /* LEGACY */ 188: char *gcvt(double, int, char *); /* LEGACY */ 189: int getsubopt(char **, char * const *, char **); 190: int grantpt(int); 191: #if __DARWIN_UNIX03 192: char *initstate(unsigned, char *, size_t); /* no __DARWIN_ALIAS needed */ 193: #else /* !__DARWIN_UNIX03 */ 194: char *initstate(unsigned long, char *, long); 195: #endif /* __DARWIN_UNIX03 */ 196: long jrand48(unsigned short[3]); 197: char *l64a(long); 198: void lcong48(unsigned short[7]); 199: long lrand48(void); 200: char *mktemp(char *); 201: int mkstemp(char *); 202: long mrand48(void); 203: long nrand48(unsigned short[3]); 204: int posix_openpt(int); 205: char *ptsname(int); 206: int putenv(char *) __DARWIN_ALIAS(putenv); 207: long random(void); 208: int rand_r(unsigned *); 209: #if (__DARWIN_UNIX03 && !defined(_POSIX_C_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(_DARWIN_BETTER_REALPATH) 210: char *realpath(const char * __restrict, char * __restrict) __DARWIN_EXTSN(realpath); 211: #else /* (!__DARWIN_UNIX03 || _POSIX_C_SOURCE) && !_DARWIN_C_SOURCE && !_DARWIN_BETTER_REALPATH */ 212: char *realpath(const char * __restrict, char * __restrict) __DARWIN_ALIAS(realpath); 213: #endif /* (__DARWIN_UNIX03 && _POSIX_C_SOURCE) || _DARWIN_C_SOURCE || _DARWIN_BETTER_REALPATH */ 214: unsigned short 215: *seed48(unsigned short[3]); 216: int setenv(const char *, const char *, int) __DARWIN_ALIAS(setenv); 217: #if __DARWIN_UNIX03 218: void setkey(const char *) __DARWIN_ALIAS(setkey); 219: #else /* !__DARWIN_UNIX03 */ 220: int setkey(const char *); 221: #endif /* __DARWIN_UNIX03 */ 222: char *setstate(const char *); 223: void srand48(long); 224: #if __DARWIN_UNIX03 225: void srandom(unsigned); 226: #else /* !__DARWIN_UNIX03 */ 227: void srandom(unsigned long); 228: #endif /* __DARWIN_UNIX03 */ 229: int unlockpt(int); 230: #if __DARWIN_UNIX03 231: int unsetenv(const char *) __DARWIN_ALIAS(unsetenv); 232: #else /* !__DARWIN_UNIX03 */ 233: void unsetenv(const char *); 234: #endif /* __DARWIN_UNIX03 */ 235: #endif /* !_ANSI_SOURCE */ 236: 237: #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) 238: #include <machine/types.h> 239: 240: #include <sys/_types/_dev_t.h> 241: #include <sys/_types/_mode_t.h> 242: 243: u_int32_t arc4random(void); 244: void arc4random_addrandom(unsigned char * /*dat*/, int /*datlen*/); 245: void arc4random_buf(void * /*buf*/, size_t /*nbytes*/) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); 246: void arc4random_stir(void); 247: u_int32_t 248: arc4random_uniform(u_int32_t /*upper_bound*/) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); 249: #ifdef __BLOCKS__ 250: int atexit_b(void (^)(void)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); 251: void *bsearch_b(const void *, const void *, size_t, 252: size_t, int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); 253: #endif /* __BLOCKS__ */ 254: 255: /* getcap(3) functions */ 256: char *cgetcap(char *, const char *, int); 257: int cgetclose(void); 258: int cgetent(char **, char **, const char *); 259: int cgetfirst(char **, char **); 260: int cgetmatch(const char *, const char *); 261: int cgetnext(char **, char **); 262: int cgetnum(char *, const char *, long *); 263: int cgetset(const char *); 264: int cgetstr(char *, const char *, char **); 265: int cgetustr(char *, const char *, char **); 266: 267: int daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0, "Use posix_spawn APIs instead.") __WATCHOS_PROHIBITED __TVOS_PROHIBITED; 268: char *devname(dev_t, mode_t); 269: char *devname_r(dev_t, mode_t, char *buf, int len); 270: char *getbsize(int *, long *); 271: int getloadavg(double [], int); 272: const char 273: *getprogname(void); 274: 275: int heapsort(void *, size_t, size_t, 276: int (*)(const void *, const void *)); 277: #ifdef __BLOCKS__ 278: int heapsort_b(void *, size_t, size_t, 279: int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); 280: #endif /* __BLOCKS__ */ 281: int mergesort(void *, size_t, size_t, 282: int (*)(const void *, const void *)); 283: #ifdef __BLOCKS__ 284: int mergesort_b(void *, size_t, size_t, 285: int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); 286: #endif /* __BLOCKS__ */ 287: void psort(void *, size_t, size_t, 288: int (*)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); 289: #ifdef __BLOCKS__ 290: void psort_b(void *, size_t, size_t, 291: int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); 292: #endif /* __BLOCKS__ */ 293: void psort_r(void *, size_t, size_t, void *, 294: int (*)(void *, const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); 295: #ifdef __BLOCKS__ 296: void qsort_b(void *, size_t, size_t, 297: int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); 298: #endif /* __BLOCKS__ */ 299: void qsort_r(void *, size_t, size_t, void *, 300: int (*)(void *, const void *, const void *)); 301: int radixsort(const unsigned char **, int, const unsigned char *, 302: unsigned); 303: void setprogname(const char *); 304: int sradixsort(const unsigned char **, int, const unsigned char *, 305: unsigned); 306: void sranddev(void); 307: void srandomdev(void); 308: void *reallocf(void *, size_t); 309: #if !__DARWIN_NO_LONG_LONG 310: long long 311: strtoq(const char *, char **, int); 312: unsigned long long 313: strtouq(const char *, char **, int); 314: #endif /* !__DARWIN_NO_LONG_LONG */ 315: extern char *suboptarg; /* getsubopt(3) external variable */ 316: void *valloc(size_t); 317: #endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ 318: 319: /* Poison the following routines if -fshort-wchar is set */ 320: #if !defined(__cplusplus) && defined(__WCHAR_MAX__) && __WCHAR_MAX__ <= 0xffffU 321: #pragma GCC poison mbstowcs mbtowc wcstombs wctomb 322: #endif 323: __END_DECLS 324: 325: #ifdef _USE_EXTENDED_LOCALES_ 326: #include <xlocale/_stdlib.h> 327: #endif /* _USE_EXTENDED_LOCALES_ */ 328: 329: #endif /* _STDLIB_H_ */ 330: