1*7e382390SJung-uk Kim /* flex integer type definitions */ 2*7e382390SJung-uk Kim 3*7e382390SJung-uk Kim #ifndef FLEXINT_H 4*7e382390SJung-uk Kim #define FLEXINT_H 5*7e382390SJung-uk Kim 6*7e382390SJung-uk Kim /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 7*7e382390SJung-uk Kim 8*7e382390SJung-uk Kim #if defined(__FreeBSD__) || \ 9*7e382390SJung-uk Kim (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) 10*7e382390SJung-uk Kim 11*7e382390SJung-uk Kim /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 12*7e382390SJung-uk Kim * if you want the limit (max/min) macros for int types. 13*7e382390SJung-uk Kim */ 14*7e382390SJung-uk Kim #ifndef __STDC_LIMIT_MACROS 15*7e382390SJung-uk Kim #define __STDC_LIMIT_MACROS 1 16*7e382390SJung-uk Kim #endif 17*7e382390SJung-uk Kim 18*7e382390SJung-uk Kim #include <inttypes.h> 19*7e382390SJung-uk Kim typedef int8_t flex_int8_t; 20*7e382390SJung-uk Kim typedef uint8_t flex_uint8_t; 21*7e382390SJung-uk Kim typedef int16_t flex_int16_t; 22*7e382390SJung-uk Kim typedef uint16_t flex_uint16_t; 23*7e382390SJung-uk Kim typedef int32_t flex_int32_t; 24*7e382390SJung-uk Kim typedef uint32_t flex_uint32_t; 25*7e382390SJung-uk Kim #else 26*7e382390SJung-uk Kim typedef signed char flex_int8_t; 27*7e382390SJung-uk Kim typedef short int flex_int16_t; 28*7e382390SJung-uk Kim typedef int flex_int32_t; 29*7e382390SJung-uk Kim typedef unsigned char flex_uint8_t; 30*7e382390SJung-uk Kim typedef unsigned short int flex_uint16_t; 31*7e382390SJung-uk Kim typedef unsigned int flex_uint32_t; 32*7e382390SJung-uk Kim 33*7e382390SJung-uk Kim /* Limits of integral types. */ 34*7e382390SJung-uk Kim #ifndef INT8_MIN 35*7e382390SJung-uk Kim #define INT8_MIN (-128) 36*7e382390SJung-uk Kim #endif 37*7e382390SJung-uk Kim #ifndef INT16_MIN 38*7e382390SJung-uk Kim #define INT16_MIN (-32767-1) 39*7e382390SJung-uk Kim #endif 40*7e382390SJung-uk Kim #ifndef INT32_MIN 41*7e382390SJung-uk Kim #define INT32_MIN (-2147483647-1) 42*7e382390SJung-uk Kim #endif 43*7e382390SJung-uk Kim #ifndef INT8_MAX 44*7e382390SJung-uk Kim #define INT8_MAX (127) 45*7e382390SJung-uk Kim #endif 46*7e382390SJung-uk Kim #ifndef INT16_MAX 47*7e382390SJung-uk Kim #define INT16_MAX (32767) 48*7e382390SJung-uk Kim #endif 49*7e382390SJung-uk Kim #ifndef INT32_MAX 50*7e382390SJung-uk Kim #define INT32_MAX (2147483647) 51*7e382390SJung-uk Kim #endif 52*7e382390SJung-uk Kim #ifndef UINT8_MAX 53*7e382390SJung-uk Kim #define UINT8_MAX (255U) 54*7e382390SJung-uk Kim #endif 55*7e382390SJung-uk Kim #ifndef UINT16_MAX 56*7e382390SJung-uk Kim #define UINT16_MAX (65535U) 57*7e382390SJung-uk Kim #endif 58*7e382390SJung-uk Kim #ifndef UINT32_MAX 59*7e382390SJung-uk Kim #define UINT32_MAX (4294967295U) 60*7e382390SJung-uk Kim #endif 61*7e382390SJung-uk Kim 62*7e382390SJung-uk Kim #ifndef SIZE_MAX 63*7e382390SJung-uk Kim #define SIZE_MAX (~(size_t)0) 64*7e382390SJung-uk Kim #endif 65*7e382390SJung-uk Kim 66*7e382390SJung-uk Kim #endif /* ! C99 */ 67*7e382390SJung-uk Kim 68*7e382390SJung-uk Kim #endif /* ! FLEXINT_H */ 69