1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * Copyright (C) 2008 The Android Open Source Project 3*8d67ca89SAndroid Build Coastguard Worker * All rights reserved. 4*8d67ca89SAndroid Build Coastguard Worker * 5*8d67ca89SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 6*8d67ca89SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions 7*8d67ca89SAndroid Build Coastguard Worker * are met: 8*8d67ca89SAndroid Build Coastguard Worker * * Redistributions of source code must retain the above copyright 9*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 10*8d67ca89SAndroid Build Coastguard Worker * * Redistributions in binary form must reproduce the above copyright 11*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in 12*8d67ca89SAndroid Build Coastguard Worker * the documentation and/or other materials provided with the 13*8d67ca89SAndroid Build Coastguard Worker * distribution. 14*8d67ca89SAndroid Build Coastguard Worker * 15*8d67ca89SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16*8d67ca89SAndroid Build Coastguard Worker * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17*8d67ca89SAndroid Build Coastguard Worker * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 18*8d67ca89SAndroid Build Coastguard Worker * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 19*8d67ca89SAndroid Build Coastguard Worker * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 20*8d67ca89SAndroid Build Coastguard Worker * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 21*8d67ca89SAndroid Build Coastguard Worker * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 22*8d67ca89SAndroid Build Coastguard Worker * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 23*8d67ca89SAndroid Build Coastguard Worker * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24*8d67ca89SAndroid Build Coastguard Worker * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 25*8d67ca89SAndroid Build Coastguard Worker * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26*8d67ca89SAndroid Build Coastguard Worker * SUCH DAMAGE. 27*8d67ca89SAndroid Build Coastguard Worker */ 28*8d67ca89SAndroid Build Coastguard Worker 29*8d67ca89SAndroid Build Coastguard Worker #ifndef _STDINT_H 30*8d67ca89SAndroid Build Coastguard Worker #define _STDINT_H 31*8d67ca89SAndroid Build Coastguard Worker 32*8d67ca89SAndroid Build Coastguard Worker #include <sys/cdefs.h> 33*8d67ca89SAndroid Build Coastguard Worker 34*8d67ca89SAndroid Build Coastguard Worker #include <bits/wchar_limits.h> 35*8d67ca89SAndroid Build Coastguard Worker #include <stddef.h> 36*8d67ca89SAndroid Build Coastguard Worker 37*8d67ca89SAndroid Build Coastguard Worker typedef signed char __int8_t; 38*8d67ca89SAndroid Build Coastguard Worker typedef unsigned char __uint8_t; 39*8d67ca89SAndroid Build Coastguard Worker typedef short __int16_t; 40*8d67ca89SAndroid Build Coastguard Worker typedef unsigned short __uint16_t; 41*8d67ca89SAndroid Build Coastguard Worker typedef int __int32_t; 42*8d67ca89SAndroid Build Coastguard Worker typedef unsigned int __uint32_t; 43*8d67ca89SAndroid Build Coastguard Worker #if defined(__LP64__) 44*8d67ca89SAndroid Build Coastguard Worker typedef long __int64_t; 45*8d67ca89SAndroid Build Coastguard Worker typedef unsigned long __uint64_t; 46*8d67ca89SAndroid Build Coastguard Worker #else 47*8d67ca89SAndroid Build Coastguard Worker typedef long long __int64_t; 48*8d67ca89SAndroid Build Coastguard Worker typedef unsigned long long __uint64_t; 49*8d67ca89SAndroid Build Coastguard Worker #endif 50*8d67ca89SAndroid Build Coastguard Worker 51*8d67ca89SAndroid Build Coastguard Worker #if defined(__LP64__) 52*8d67ca89SAndroid Build Coastguard Worker typedef long __intptr_t; 53*8d67ca89SAndroid Build Coastguard Worker typedef unsigned long __uintptr_t; 54*8d67ca89SAndroid Build Coastguard Worker #else 55*8d67ca89SAndroid Build Coastguard Worker typedef int __intptr_t; 56*8d67ca89SAndroid Build Coastguard Worker typedef unsigned int __uintptr_t; 57*8d67ca89SAndroid Build Coastguard Worker #endif 58*8d67ca89SAndroid Build Coastguard Worker 59*8d67ca89SAndroid Build Coastguard Worker typedef __int8_t int8_t; 60*8d67ca89SAndroid Build Coastguard Worker typedef __uint8_t uint8_t; 61*8d67ca89SAndroid Build Coastguard Worker 62*8d67ca89SAndroid Build Coastguard Worker typedef __int16_t int16_t; 63*8d67ca89SAndroid Build Coastguard Worker typedef __uint16_t uint16_t; 64*8d67ca89SAndroid Build Coastguard Worker 65*8d67ca89SAndroid Build Coastguard Worker typedef __int32_t int32_t; 66*8d67ca89SAndroid Build Coastguard Worker typedef __uint32_t uint32_t; 67*8d67ca89SAndroid Build Coastguard Worker 68*8d67ca89SAndroid Build Coastguard Worker typedef __int64_t int64_t; 69*8d67ca89SAndroid Build Coastguard Worker typedef __uint64_t uint64_t; 70*8d67ca89SAndroid Build Coastguard Worker 71*8d67ca89SAndroid Build Coastguard Worker typedef __intptr_t intptr_t; 72*8d67ca89SAndroid Build Coastguard Worker typedef __uintptr_t uintptr_t; 73*8d67ca89SAndroid Build Coastguard Worker 74*8d67ca89SAndroid Build Coastguard Worker typedef int8_t int_least8_t; 75*8d67ca89SAndroid Build Coastguard Worker typedef uint8_t uint_least8_t; 76*8d67ca89SAndroid Build Coastguard Worker 77*8d67ca89SAndroid Build Coastguard Worker typedef int16_t int_least16_t; 78*8d67ca89SAndroid Build Coastguard Worker typedef uint16_t uint_least16_t; 79*8d67ca89SAndroid Build Coastguard Worker 80*8d67ca89SAndroid Build Coastguard Worker typedef int32_t int_least32_t; 81*8d67ca89SAndroid Build Coastguard Worker typedef uint32_t uint_least32_t; 82*8d67ca89SAndroid Build Coastguard Worker 83*8d67ca89SAndroid Build Coastguard Worker typedef int64_t int_least64_t; 84*8d67ca89SAndroid Build Coastguard Worker typedef uint64_t uint_least64_t; 85*8d67ca89SAndroid Build Coastguard Worker 86*8d67ca89SAndroid Build Coastguard Worker typedef int8_t int_fast8_t; 87*8d67ca89SAndroid Build Coastguard Worker typedef uint8_t uint_fast8_t; 88*8d67ca89SAndroid Build Coastguard Worker 89*8d67ca89SAndroid Build Coastguard Worker typedef int64_t int_fast64_t; 90*8d67ca89SAndroid Build Coastguard Worker typedef uint64_t uint_fast64_t; 91*8d67ca89SAndroid Build Coastguard Worker 92*8d67ca89SAndroid Build Coastguard Worker #if defined(__LP64__) 93*8d67ca89SAndroid Build Coastguard Worker typedef int64_t int_fast16_t; 94*8d67ca89SAndroid Build Coastguard Worker typedef uint64_t uint_fast16_t; 95*8d67ca89SAndroid Build Coastguard Worker typedef int64_t int_fast32_t; 96*8d67ca89SAndroid Build Coastguard Worker typedef uint64_t uint_fast32_t; 97*8d67ca89SAndroid Build Coastguard Worker #else 98*8d67ca89SAndroid Build Coastguard Worker typedef int32_t int_fast16_t; 99*8d67ca89SAndroid Build Coastguard Worker typedef uint32_t uint_fast16_t; 100*8d67ca89SAndroid Build Coastguard Worker typedef int32_t int_fast32_t; 101*8d67ca89SAndroid Build Coastguard Worker typedef uint32_t uint_fast32_t; 102*8d67ca89SAndroid Build Coastguard Worker #endif 103*8d67ca89SAndroid Build Coastguard Worker 104*8d67ca89SAndroid Build Coastguard Worker typedef uint64_t uintmax_t; 105*8d67ca89SAndroid Build Coastguard Worker typedef int64_t intmax_t; 106*8d67ca89SAndroid Build Coastguard Worker 107*8d67ca89SAndroid Build Coastguard Worker /* Keep the kernel from trying to define these types... */ 108*8d67ca89SAndroid Build Coastguard Worker #define __BIT_TYPES_DEFINED__ 109*8d67ca89SAndroid Build Coastguard Worker 110*8d67ca89SAndroid Build Coastguard Worker #define INT8_C(c) c 111*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST8_C(c) INT8_C(c) 112*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST8_C(c) INT8_C(c) 113*8d67ca89SAndroid Build Coastguard Worker 114*8d67ca89SAndroid Build Coastguard Worker #define UINT8_C(c) c 115*8d67ca89SAndroid Build Coastguard Worker #define UINT_LEAST8_C(c) UINT8_C(c) 116*8d67ca89SAndroid Build Coastguard Worker #define UINT_FAST8_C(c) UINT8_C(c) 117*8d67ca89SAndroid Build Coastguard Worker 118*8d67ca89SAndroid Build Coastguard Worker #define INT16_C(c) c 119*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST16_C(c) INT16_C(c) 120*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST16_C(c) INT32_C(c) 121*8d67ca89SAndroid Build Coastguard Worker 122*8d67ca89SAndroid Build Coastguard Worker #define UINT16_C(c) c 123*8d67ca89SAndroid Build Coastguard Worker #define UINT_LEAST16_C(c) UINT16_C(c) 124*8d67ca89SAndroid Build Coastguard Worker #define UINT_FAST16_C(c) UINT32_C(c) 125*8d67ca89SAndroid Build Coastguard Worker #define INT32_C(c) c 126*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST32_C(c) INT32_C(c) 127*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST32_C(c) INT32_C(c) 128*8d67ca89SAndroid Build Coastguard Worker 129*8d67ca89SAndroid Build Coastguard Worker #define UINT32_C(c) c ## U 130*8d67ca89SAndroid Build Coastguard Worker #define UINT_LEAST32_C(c) UINT32_C(c) 131*8d67ca89SAndroid Build Coastguard Worker #define UINT_FAST32_C(c) UINT32_C(c) 132*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST64_C(c) INT64_C(c) 133*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST64_C(c) INT64_C(c) 134*8d67ca89SAndroid Build Coastguard Worker 135*8d67ca89SAndroid Build Coastguard Worker #define UINT_LEAST64_C(c) UINT64_C(c) 136*8d67ca89SAndroid Build Coastguard Worker #define UINT_FAST64_C(c) UINT64_C(c) 137*8d67ca89SAndroid Build Coastguard Worker 138*8d67ca89SAndroid Build Coastguard Worker #define INTMAX_C(c) INT64_C(c) 139*8d67ca89SAndroid Build Coastguard Worker #define UINTMAX_C(c) UINT64_C(c) 140*8d67ca89SAndroid Build Coastguard Worker 141*8d67ca89SAndroid Build Coastguard Worker #if defined(__LP64__) 142*8d67ca89SAndroid Build Coastguard Worker # define INT64_C(c) c ## L 143*8d67ca89SAndroid Build Coastguard Worker # define UINT64_C(c) c ## UL 144*8d67ca89SAndroid Build Coastguard Worker # define INTPTR_C(c) INT64_C(c) 145*8d67ca89SAndroid Build Coastguard Worker # define UINTPTR_C(c) UINT64_C(c) 146*8d67ca89SAndroid Build Coastguard Worker # define PTRDIFF_C(c) INT64_C(c) 147*8d67ca89SAndroid Build Coastguard Worker #else 148*8d67ca89SAndroid Build Coastguard Worker # define INT64_C(c) c ## LL 149*8d67ca89SAndroid Build Coastguard Worker # define UINT64_C(c) c ## ULL 150*8d67ca89SAndroid Build Coastguard Worker # define INTPTR_C(c) INT32_C(c) 151*8d67ca89SAndroid Build Coastguard Worker # define UINTPTR_C(c) UINT32_C(c) 152*8d67ca89SAndroid Build Coastguard Worker # define PTRDIFF_C(c) INT32_C(c) 153*8d67ca89SAndroid Build Coastguard Worker #endif 154*8d67ca89SAndroid Build Coastguard Worker 155*8d67ca89SAndroid Build Coastguard Worker #define INT8_MIN (-128) 156*8d67ca89SAndroid Build Coastguard Worker #define INT8_MAX (127) 157*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST8_MIN INT8_MIN 158*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST8_MAX INT8_MAX 159*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST8_MIN INT8_MIN 160*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST8_MAX INT8_MAX 161*8d67ca89SAndroid Build Coastguard Worker 162*8d67ca89SAndroid Build Coastguard Worker #define UINT8_MAX (255) 163*8d67ca89SAndroid Build Coastguard Worker #define UINT_LEAST8_MAX UINT8_MAX 164*8d67ca89SAndroid Build Coastguard Worker #define UINT_FAST8_MAX UINT8_MAX 165*8d67ca89SAndroid Build Coastguard Worker 166*8d67ca89SAndroid Build Coastguard Worker #define INT16_MIN (-32768) 167*8d67ca89SAndroid Build Coastguard Worker #define INT16_MAX (32767) 168*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST16_MIN INT16_MIN 169*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST16_MAX INT16_MAX 170*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST16_MIN INT32_MIN 171*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST16_MAX INT32_MAX 172*8d67ca89SAndroid Build Coastguard Worker 173*8d67ca89SAndroid Build Coastguard Worker #define UINT16_MAX (65535) 174*8d67ca89SAndroid Build Coastguard Worker #define UINT_LEAST16_MAX UINT16_MAX 175*8d67ca89SAndroid Build Coastguard Worker #define UINT_FAST16_MAX UINT32_MAX 176*8d67ca89SAndroid Build Coastguard Worker 177*8d67ca89SAndroid Build Coastguard Worker #define INT32_MIN (-2147483647-1) 178*8d67ca89SAndroid Build Coastguard Worker #define INT32_MAX (2147483647) 179*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST32_MIN INT32_MIN 180*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST32_MAX INT32_MAX 181*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST32_MIN INT32_MIN 182*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST32_MAX INT32_MAX 183*8d67ca89SAndroid Build Coastguard Worker 184*8d67ca89SAndroid Build Coastguard Worker #define UINT32_MAX (4294967295U) 185*8d67ca89SAndroid Build Coastguard Worker #define UINT_LEAST32_MAX UINT32_MAX 186*8d67ca89SAndroid Build Coastguard Worker #define UINT_FAST32_MAX UINT32_MAX 187*8d67ca89SAndroid Build Coastguard Worker 188*8d67ca89SAndroid Build Coastguard Worker #define INT64_MIN (INT64_C(-9223372036854775807)-1) 189*8d67ca89SAndroid Build Coastguard Worker #define INT64_MAX (INT64_C(9223372036854775807)) 190*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST64_MIN INT64_MIN 191*8d67ca89SAndroid Build Coastguard Worker #define INT_LEAST64_MAX INT64_MAX 192*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST64_MIN INT64_MIN 193*8d67ca89SAndroid Build Coastguard Worker #define INT_FAST64_MAX INT64_MAX 194*8d67ca89SAndroid Build Coastguard Worker #define UINT64_MAX (UINT64_C(18446744073709551615)) 195*8d67ca89SAndroid Build Coastguard Worker 196*8d67ca89SAndroid Build Coastguard Worker #define UINT_LEAST64_MAX UINT64_MAX 197*8d67ca89SAndroid Build Coastguard Worker #define UINT_FAST64_MAX UINT64_MAX 198*8d67ca89SAndroid Build Coastguard Worker 199*8d67ca89SAndroid Build Coastguard Worker #define INTMAX_MIN INT64_MIN 200*8d67ca89SAndroid Build Coastguard Worker #define INTMAX_MAX INT64_MAX 201*8d67ca89SAndroid Build Coastguard Worker #define UINTMAX_MAX UINT64_MAX 202*8d67ca89SAndroid Build Coastguard Worker 203*8d67ca89SAndroid Build Coastguard Worker #define SIG_ATOMIC_MAX INT32_MAX 204*8d67ca89SAndroid Build Coastguard Worker #define SIG_ATOMIC_MIN INT32_MIN 205*8d67ca89SAndroid Build Coastguard Worker 206*8d67ca89SAndroid Build Coastguard Worker #if defined(__WINT_UNSIGNED__) 207*8d67ca89SAndroid Build Coastguard Worker # define WINT_MAX UINT32_MAX 208*8d67ca89SAndroid Build Coastguard Worker # define WINT_MIN 0 209*8d67ca89SAndroid Build Coastguard Worker #else 210*8d67ca89SAndroid Build Coastguard Worker # define WINT_MAX INT32_MAX 211*8d67ca89SAndroid Build Coastguard Worker # define WINT_MIN INT32_MIN 212*8d67ca89SAndroid Build Coastguard Worker #endif 213*8d67ca89SAndroid Build Coastguard Worker 214*8d67ca89SAndroid Build Coastguard Worker #if defined(__LP64__) 215*8d67ca89SAndroid Build Coastguard Worker # define INTPTR_MIN INT64_MIN 216*8d67ca89SAndroid Build Coastguard Worker # define INTPTR_MAX INT64_MAX 217*8d67ca89SAndroid Build Coastguard Worker # define UINTPTR_MAX UINT64_MAX 218*8d67ca89SAndroid Build Coastguard Worker # define PTRDIFF_MIN INT64_MIN 219*8d67ca89SAndroid Build Coastguard Worker # define PTRDIFF_MAX INT64_MAX 220*8d67ca89SAndroid Build Coastguard Worker # define SIZE_MAX UINT64_MAX 221*8d67ca89SAndroid Build Coastguard Worker #else 222*8d67ca89SAndroid Build Coastguard Worker # define INTPTR_MIN INT32_MIN 223*8d67ca89SAndroid Build Coastguard Worker # define INTPTR_MAX INT32_MAX 224*8d67ca89SAndroid Build Coastguard Worker # define UINTPTR_MAX UINT32_MAX 225*8d67ca89SAndroid Build Coastguard Worker # define PTRDIFF_MIN INT32_MIN 226*8d67ca89SAndroid Build Coastguard Worker # define PTRDIFF_MAX INT32_MAX 227*8d67ca89SAndroid Build Coastguard Worker # define SIZE_MAX UINT32_MAX 228*8d67ca89SAndroid Build Coastguard Worker #endif 229*8d67ca89SAndroid Build Coastguard Worker 230*8d67ca89SAndroid Build Coastguard Worker #endif /* _STDINT_H */ 231