xref: /freebsd/contrib/flex/src/flexint.h (revision 7e382390)
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