1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2012-2017 Roberto E. Vargas Caballero 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu /* 7*91f16700Schasinglulu * Portions copyright (c) 2018-2019, Arm Limited and Contributors. 8*91f16700Schasinglulu * All rights reserved. 9*91f16700Schasinglulu */ 10*91f16700Schasinglulu 11*91f16700Schasinglulu #ifndef STDINT_H 12*91f16700Schasinglulu #define STDINT_H 13*91f16700Schasinglulu 14*91f16700Schasinglulu #include <limits.h> 15*91f16700Schasinglulu #include <stdint_.h> 16*91f16700Schasinglulu 17*91f16700Schasinglulu #define INT8_MAX CHAR_MAX 18*91f16700Schasinglulu #define INT8_MIN CHAR_MIN 19*91f16700Schasinglulu #define UINT8_MAX UCHAR_MAX 20*91f16700Schasinglulu 21*91f16700Schasinglulu #define INT16_MAX SHRT_MAX 22*91f16700Schasinglulu #define INT16_MIN SHRT_MIN 23*91f16700Schasinglulu #define UINT16_MAX USHRT_MAX 24*91f16700Schasinglulu 25*91f16700Schasinglulu #define INT32_MAX INT_MAX 26*91f16700Schasinglulu #define INT32_MIN INT_MIN 27*91f16700Schasinglulu #define UINT32_MAX UINT_MAX 28*91f16700Schasinglulu 29*91f16700Schasinglulu #define INT_LEAST8_MIN INT8_MIN 30*91f16700Schasinglulu #define INT_LEAST8_MAX INT8_MAX 31*91f16700Schasinglulu #define UINT_LEAST8_MAX UINT8_MAX 32*91f16700Schasinglulu 33*91f16700Schasinglulu #define INT_LEAST16_MIN INT16_MIN 34*91f16700Schasinglulu #define INT_LEAST16_MAX INT16_MAX 35*91f16700Schasinglulu #define UINT_LEAST16_MAX UINT16_MAX 36*91f16700Schasinglulu 37*91f16700Schasinglulu #define INT_LEAST32_MIN INT32_MIN 38*91f16700Schasinglulu #define INT_LEAST32_MAX INT32_MAX 39*91f16700Schasinglulu #define UINT_LEAST32_MAX UINT32_MAX 40*91f16700Schasinglulu 41*91f16700Schasinglulu #define INT_LEAST64_MIN INT64_MIN 42*91f16700Schasinglulu #define INT_LEAST64_MAX INT64_MAX 43*91f16700Schasinglulu #define UINT_LEAST64_MAX UINT64_MAX 44*91f16700Schasinglulu 45*91f16700Schasinglulu #define INT_FAST8_MIN INT32_MIN 46*91f16700Schasinglulu #define INT_FAST8_MAX INT32_MAX 47*91f16700Schasinglulu #define UINT_FAST8_MAX UINT32_MAX 48*91f16700Schasinglulu 49*91f16700Schasinglulu #define INT_FAST16_MIN INT32_MIN 50*91f16700Schasinglulu #define INT_FAST16_MAX INT32_MAX 51*91f16700Schasinglulu #define UINT_FAST16_MAX UINT32_MAX 52*91f16700Schasinglulu 53*91f16700Schasinglulu #define INT_FAST32_MIN INT32_MIN 54*91f16700Schasinglulu #define INT_FAST32_MAX INT32_MAX 55*91f16700Schasinglulu #define UINT_FAST32_MAX UINT32_MAX 56*91f16700Schasinglulu 57*91f16700Schasinglulu #define INT_FAST64_MIN INT64_MIN 58*91f16700Schasinglulu #define INT_FAST64_MAX INT64_MAX 59*91f16700Schasinglulu #define UINT_FAST64_MAX UINT64_MAX 60*91f16700Schasinglulu 61*91f16700Schasinglulu #define INTPTR_MIN LONG_MIN 62*91f16700Schasinglulu #define INTPTR_MAX LONG_MAX 63*91f16700Schasinglulu #define UINTPTR_MAX ULONG_MAX 64*91f16700Schasinglulu 65*91f16700Schasinglulu #define INTMAX_MIN LLONG_MIN 66*91f16700Schasinglulu #define INTMAX_MAX LLONG_MAX 67*91f16700Schasinglulu #define UINTMAX_MAX ULLONG_MAX 68*91f16700Schasinglulu 69*91f16700Schasinglulu #define PTRDIFF_MIN LONG_MIN 70*91f16700Schasinglulu #define PTRDIFF_MAX LONG_MAX 71*91f16700Schasinglulu 72*91f16700Schasinglulu #define SIZE_MAX ULONG_MAX 73*91f16700Schasinglulu 74*91f16700Schasinglulu #define INT8_C(x) x 75*91f16700Schasinglulu #define INT16_C(x) x 76*91f16700Schasinglulu #define INT32_C(x) x 77*91f16700Schasinglulu 78*91f16700Schasinglulu #define UINT8_C(x) x 79*91f16700Schasinglulu #define UINT16_C(x) x 80*91f16700Schasinglulu #define UINT32_C(x) x ## U 81*91f16700Schasinglulu 82*91f16700Schasinglulu #define INTMAX_C(x) x ## LL 83*91f16700Schasinglulu #define UINTMAX_C(x) x ## ULL 84*91f16700Schasinglulu 85*91f16700Schasinglulu typedef signed char int8_t; 86*91f16700Schasinglulu typedef short int16_t; 87*91f16700Schasinglulu typedef int int32_t; 88*91f16700Schasinglulu 89*91f16700Schasinglulu typedef unsigned char uint8_t; 90*91f16700Schasinglulu typedef unsigned short uint16_t; 91*91f16700Schasinglulu typedef unsigned int uint32_t; 92*91f16700Schasinglulu 93*91f16700Schasinglulu typedef signed char int8_least_t; 94*91f16700Schasinglulu typedef short int16_least_t; 95*91f16700Schasinglulu typedef int int32_least_t; 96*91f16700Schasinglulu 97*91f16700Schasinglulu typedef unsigned char uint8_least_t; 98*91f16700Schasinglulu typedef unsigned short uint16_least_t; 99*91f16700Schasinglulu typedef unsigned int uint32_least_t; 100*91f16700Schasinglulu 101*91f16700Schasinglulu typedef int int8_fast_t; 102*91f16700Schasinglulu typedef int int16_fast_t; 103*91f16700Schasinglulu typedef int int32_fast_t; 104*91f16700Schasinglulu 105*91f16700Schasinglulu typedef unsigned int uint8_fast_t; 106*91f16700Schasinglulu typedef unsigned int uint16_fast_t; 107*91f16700Schasinglulu typedef unsigned int uint32_fast_t; 108*91f16700Schasinglulu 109*91f16700Schasinglulu typedef long intptr_t; 110*91f16700Schasinglulu typedef unsigned long uintptr_t; 111*91f16700Schasinglulu 112*91f16700Schasinglulu /* 113*91f16700Schasinglulu * Conceptually, these are supposed to be the largest integers representable in C, 114*91f16700Schasinglulu * but GCC and Clang define them as long long for compatibility. 115*91f16700Schasinglulu */ 116*91f16700Schasinglulu typedef long long intmax_t; 117*91f16700Schasinglulu typedef unsigned long long uintmax_t; 118*91f16700Schasinglulu 119*91f16700Schasinglulu typedef long register_t; 120*91f16700Schasinglulu typedef unsigned long u_register_t; 121*91f16700Schasinglulu 122*91f16700Schasinglulu #endif /* STDINT_H */ 123