2
* $Id: _default_types.h,v 1.2 2008/06/11 22:14:54 jjohnstn Exp $
5
#ifndef _MACHINE__DEFAULT_TYPES_H
6
#define _MACHINE__DEFAULT_TYPES_H
13
* Guess on types by examining *_MIN / *_MAX defines.
15
#if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ >= 3 ) \
16
&& defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2 ))
17
/* GCC >= 3.3.0 has __<val>__ implicitly defined. */
18
#define __EXP(x) __##x##__
20
/* Fall back to POSIX versions from <limits.h> */
25
#if __EXP(SCHAR_MAX) == 0x7f
26
typedef signed char __int8_t ;
27
typedef unsigned char __uint8_t ;
28
#define ___int8_t_defined 1
31
#if __EXP(INT_MAX) == 0x7fff
32
typedef signed int __int16_t;
33
typedef unsigned int __uint16_t;
34
#define ___int16_t_defined 1
35
#elif __EXP(SHRT_MAX) == 0x7fff
36
typedef signed short __int16_t;
37
typedef unsigned short __uint16_t;
38
#define ___int16_t_defined 1
39
#elif __EXP(SCHAR_MAX) == 0x7fff
40
typedef signed char __int16_t;
41
typedef unsigned char __uint16_t;
42
#define ___int16_t_defined 1
45
#if ___int16_t_defined
46
typedef __int16_t __int_least16_t;
47
typedef __uint16_t __uint_least16_t;
48
#define ___int_least16_t_defined 1
50
#if !___int8_t_defined
51
typedef __int16_t __int_least8_t;
52
typedef __uint16_t __uint_least8_t;
53
#define ___int_least8_t_defined 1
57
#if __EXP(INT_MAX) == 0x7fffffffL
58
typedef signed int __int32_t;
59
typedef unsigned int __uint32_t;
60
#define ___int32_t_defined 1
61
#elif __EXP(LONG_MAX) == 0x7fffffffL
62
typedef signed long __int32_t;
63
typedef unsigned long __uint32_t;
64
#define ___int32_t_defined 1
65
#elif __EXP(SHRT_MAX) == 0x7fffffffL
66
typedef signed short __int32_t;
67
typedef unsigned short __uint32_t;
68
#define ___int32_t_defined 1
69
#elif __EXP(SCHAR_MAX) == 0x7fffffffL
70
typedef signed char __int32_t;
71
typedef unsigned char __uint32_t;
72
#define ___int32_t_defined 1
75
#if ___int32_t_defined
76
typedef __int32_t __int_least32_t;
77
typedef __uint32_t __uint_least32_t;
78
#define ___int_least32_t_defined 1
80
#if !___int8_t_defined
81
typedef __int32_t __int_least8_t;
82
typedef __uint32_t __uint_least8_t;
83
#define ___int_least8_t_defined 1
85
#if !___int16_t_defined
86
typedef __int32_t __int_least16_t;
87
typedef __uint32_t __uint_least16_t;
88
#define ___int_least16_t_defined 1
92
#if __EXP(LONG_MAX) > 0x7fffffff
93
typedef signed long __int64_t;
94
typedef unsigned long __uint64_t;
95
#define ___int64_t_defined 1
97
/* GCC has __LONG_LONG_MAX__ */
98
#elif defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff)
99
typedef signed long long __int64_t;
100
typedef unsigned long long __uint64_t;
101
#define ___int64_t_defined 1
103
/* POSIX mandates LLONG_MAX in <limits.h> */
104
#elif defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff)
105
typedef signed long long __int64_t;
106
typedef unsigned long long __uint64_t;
107
#define ___int64_t_defined 1
109
#elif __EXP(INT_MAX) > 0x7fffffff
110
typedef signed int __int64_t;
111
typedef unsigned int __uint64_t;
112
#define ___int64_t_defined 1
121
#endif /* _MACHINE__DEFAULT_TYPES_H */