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