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-2004, 2013 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: /* 25: * <inttypes.h> -- Standard C header, defined in ISO/IEC 9899:1999 26: * (aka "C99"), section 7.8. This defines format string conversion 27: * specifiers suitable for use within arguments to fprintf and fscanf 28: * and their ilk. 29: */ 30: 31: #if !defined(_INTTYPES_H_) 32: #define _INTTYPES_H_ 33: 34: # define __PRI_8_LENGTH_MODIFIER__ "hh" 35: # define __PRI_64_LENGTH_MODIFIER__ "ll" 36: # define __SCN_64_LENGTH_MODIFIER__ "ll" 37: # define __PRI_MAX_LENGTH_MODIFIER__ "j" 38: # define __SCN_MAX_LENGTH_MODIFIER__ "j" 39: 40: # define PRId8 __PRI_8_LENGTH_MODIFIER__ "d" 41: # define PRIi8 __PRI_8_LENGTH_MODIFIER__ "i" 42: # define PRIo8 __PRI_8_LENGTH_MODIFIER__ "o" 43: # define PRIu8 __PRI_8_LENGTH_MODIFIER__ "u" 44: # define PRIx8 __PRI_8_LENGTH_MODIFIER__ "x" 45: # define PRIX8 __PRI_8_LENGTH_MODIFIER__ "X" 46: 47: # define PRId16 "hd" 48: # define PRIi16 "hi" 49: # define PRIo16 "ho" 50: # define PRIu16 "hu" 51: # define PRIx16 "hx" 52: # define PRIX16 "hX" 53: 54: # define PRId32 "d" 55: # define PRIi32 "i" 56: # define PRIo32 "o" 57: # define PRIu32 "u" 58: # define PRIx32 "x" 59: # define PRIX32 "X" 60: 61: # define PRId64 __PRI_64_LENGTH_MODIFIER__ "d" 62: # define PRIi64 __PRI_64_LENGTH_MODIFIER__ "i" 63: # define PRIo64 __PRI_64_LENGTH_MODIFIER__ "o" 64: # define PRIu64 __PRI_64_LENGTH_MODIFIER__ "u" 65: # define PRIx64 __PRI_64_LENGTH_MODIFIER__ "x" 66: # define PRIX64 __PRI_64_LENGTH_MODIFIER__ "X" 67: 68: # define PRIdLEAST8 PRId8 69: # define PRIiLEAST8 PRIi8 70: # define PRIoLEAST8 PRIo8 71: # define PRIuLEAST8 PRIu8 72: # define PRIxLEAST8 PRIx8 73: # define PRIXLEAST8 PRIX8 74: 75: # define PRIdLEAST16 PRId16 76: # define PRIiLEAST16 PRIi16 77: # define PRIoLEAST16 PRIo16 78: # define PRIuLEAST16 PRIu16 79: # define PRIxLEAST16 PRIx16 80: # define PRIXLEAST16 PRIX16 81: 82: # define PRIdLEAST32 PRId32 83: # define PRIiLEAST32 PRIi32 84: # define PRIoLEAST32 PRIo32 85: # define PRIuLEAST32 PRIu32 86: # define PRIxLEAST32 PRIx32 87: # define PRIXLEAST32 PRIX32 88: 89: # define PRIdLEAST64 PRId64 90: # define PRIiLEAST64 PRIi64 91: # define PRIoLEAST64 PRIo64 92: # define PRIuLEAST64 PRIu64 93: # define PRIxLEAST64 PRIx64 94: # define PRIXLEAST64 PRIX64 95: 96: # define PRIdFAST8 PRId8 97: # define PRIiFAST8 PRIi8 98: # define PRIoFAST8 PRIo8 99: # define PRIuFAST8 PRIu8 100: # define PRIxFAST8 PRIx8 101: # define PRIXFAST8 PRIX8 102: 103: # define PRIdFAST16 PRId16 104: # define PRIiFAST16 PRIi16 105: # define PRIoFAST16 PRIo16 106: # define PRIuFAST16 PRIu16 107: # define PRIxFAST16 PRIx16 108: # define PRIXFAST16 PRIX16 109: 110: # define PRIdFAST32 PRId32 111: # define PRIiFAST32 PRIi32 112: # define PRIoFAST32 PRIo32 113: # define PRIuFAST32 PRIu32 114: # define PRIxFAST32 PRIx32 115: # define PRIXFAST32 PRIX32 116: 117: # define PRIdFAST64 PRId64 118: # define PRIiFAST64 PRIi64 119: # define PRIoFAST64 PRIo64 120: # define PRIuFAST64 PRIu64 121: # define PRIxFAST64 PRIx64 122: # define PRIXFAST64 PRIX64 123: 124: /* int32_t is 'int', but intptr_t is 'long'. */ 125: # define PRIdPTR "ld" 126: # define PRIiPTR "li" 127: # define PRIoPTR "lo" 128: # define PRIuPTR "lu" 129: # define PRIxPTR "lx" 130: # define PRIXPTR "lX" 131: 132: # define PRIdMAX __PRI_MAX_LENGTH_MODIFIER__ "d" 133: # define PRIiMAX __PRI_MAX_LENGTH_MODIFIER__ "i" 134: # define PRIoMAX __PRI_MAX_LENGTH_MODIFIER__ "o" 135: # define PRIuMAX __PRI_MAX_LENGTH_MODIFIER__ "u" 136: # define PRIxMAX __PRI_MAX_LENGTH_MODIFIER__ "x" 137: # define PRIXMAX __PRI_MAX_LENGTH_MODIFIER__ "X" 138: 139: # define SCNd8 __PRI_8_LENGTH_MODIFIER__ "d" 140: # define SCNi8 __PRI_8_LENGTH_MODIFIER__ "i" 141: # define SCNo8 __PRI_8_LENGTH_MODIFIER__ "o" 142: # define SCNu8 __PRI_8_LENGTH_MODIFIER__ "u" 143: # define SCNx8 __PRI_8_LENGTH_MODIFIER__ "x" 144: 145: # define SCNd16 "hd" 146: # define SCNi16 "hi" 147: # define SCNo16 "ho" 148: # define SCNu16 "hu" 149: # define SCNx16 "hx" 150: 151: # define SCNd32 "d" 152: # define SCNi32 "i" 153: # define SCNo32 "o" 154: # define SCNu32 "u" 155: # define SCNx32 "x" 156: 157: # define SCNd64 __SCN_64_LENGTH_MODIFIER__ "d" 158: # define SCNi64 __SCN_64_LENGTH_MODIFIER__ "i" 159: # define SCNo64 __SCN_64_LENGTH_MODIFIER__ "o" 160: # define SCNu64 __SCN_64_LENGTH_MODIFIER__ "u" 161: # define SCNx64 __SCN_64_LENGTH_MODIFIER__ "x" 162: 163: # define SCNdLEAST8 SCNd8 164: # define SCNiLEAST8 SCNi8 165: # define SCNoLEAST8 SCNo8 166: # define SCNuLEAST8 SCNu8 167: # define SCNxLEAST8 SCNx8 168: 169: # define SCNdLEAST16 SCNd16 170: # define SCNiLEAST16 SCNi16 171: # define SCNoLEAST16 SCNo16 172: # define SCNuLEAST16 SCNu16 173: # define SCNxLEAST16 SCNx16 174: 175: # define SCNdLEAST32 SCNd32 176: # define SCNiLEAST32 SCNi32 177: # define SCNoLEAST32 SCNo32 178: # define SCNuLEAST32 SCNu32 179: # define SCNxLEAST32 SCNx32 180: 181: # define SCNdLEAST64 SCNd64 182: # define SCNiLEAST64 SCNi64 183: # define SCNoLEAST64 SCNo64 184: # define SCNuLEAST64 SCNu64 185: # define SCNxLEAST64 SCNx64 186: 187: # define SCNdFAST8 SCNd8 188: # define SCNiFAST8 SCNi8 189: # define SCNoFAST8 SCNo8 190: # define SCNuFAST8 SCNu8 191: # define SCNxFAST8 SCNx8 192: 193: # define SCNdFAST16 SCNd16 194: # define SCNiFAST16 SCNi16 195: # define SCNoFAST16 SCNo16 196: # define SCNuFAST16 SCNu16 197: # define SCNxFAST16 SCNx16 198: 199: # define SCNdFAST32 SCNd32 200: # define SCNiFAST32 SCNi32 201: # define SCNoFAST32 SCNo32 202: # define SCNuFAST32 SCNu32 203: # define SCNxFAST32 SCNx32 204: 205: # define SCNdFAST64 SCNd64 206: # define SCNiFAST64 SCNi64 207: # define SCNoFAST64 SCNo64 208: # define SCNuFAST64 SCNu64 209: # define SCNxFAST64 SCNx64 210: 211: # define SCNdPTR "ld" 212: # define SCNiPTR "li" 213: # define SCNoPTR "lo" 214: # define SCNuPTR "lu" 215: # define SCNxPTR "lx" 216: 217: # define SCNdMAX __SCN_MAX_LENGTH_MODIFIER__ "d" 218: # define SCNiMAX __SCN_MAX_LENGTH_MODIFIER__ "i" 219: # define SCNoMAX __SCN_MAX_LENGTH_MODIFIER__ "o" 220: # define SCNuMAX __SCN_MAX_LENGTH_MODIFIER__ "u" 221: # define SCNxMAX __SCN_MAX_LENGTH_MODIFIER__ "x" 222: 223: #include <sys/cdefs.h> 224: #include <Availability.h> 225: 226: #include <_types.h> 227: #include <sys/_types/_wchar_t.h> 228: 229: #include <stdint.h> 230: 231: __BEGIN_DECLS 232: 233: /* 7.8.2.1 */ 234: __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) 235: extern intmax_t 236: imaxabs(intmax_t j); 237: 238: /* 7.8.2.2 */ 239: typedef struct { 240: intmax_t quot; 241: intmax_t rem; 242: } imaxdiv_t; 243: 244: __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) 245: extern imaxdiv_t 246: imaxdiv(intmax_t __numer, intmax_t __denom); 247: 248: /* 7.8.2.3 */ 249: __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) 250: extern intmax_t 251: strtoimax(const char * __restrict __nptr, 252: char ** __restrict __endptr, 253: int __base); 254: 255: __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) 256: extern uintmax_t 257: strtoumax(const char * __restrict __nptr, 258: char ** __restrict __endptr, 259: int __base); 260: 261: /* 7.8.2.4 */ 262: __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) 263: extern intmax_t 264: wcstoimax(const wchar_t * __restrict __nptr, 265: wchar_t ** __restrict __endptr, 266: int __base); 267: 268: __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) 269: extern uintmax_t 270: wcstoumax(const wchar_t * __restrict __nptr, 271: wchar_t ** __restrict __endptr, 272: int __base); 273: 274: /* Poison the following routines if -fshort-wchar is set */ 275: #if !defined(__cplusplus) && defined(__WCHAR_MAX__) && __WCHAR_MAX__ <= 0xffffU 276: #pragma GCC poison wcstoimax wcstoumax 277: #endif 278: 279: __END_DECLS 280: 281: #ifdef _USE_EXTENDED_LOCALES_ 282: #include <xlocale/_inttypes.h> 283: #endif /* _USE_EXTENDED_LOCALES_ */ 284: 285: /* 286: No need to #undef the __*_{8,64}_LENGTH_MODIFIER__ macros; 287: in fact, you can't #undef them, because later uses of any of 288: their dependents will *not* then do the intended substitution. 289: Expansion of a #define like this one: 290: 291: #define x IDENT y 292: 293: uses the cpp value of IDENT at the location where x is *expanded*, 294: not where it is #defined. 295: */ 296: 297: #endif /* !_INTTYPES_H_ */ 298: