xref: /utopia/UTPA2-700.0.x/projects/tools/lint/aeon_include/machine/_types.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 /*
2  *  $Id: _types.h,v 1.2 2005/03/22 18:12:29 cgf Exp $
3  */
4 
5 #ifndef _MACHINE__TYPES_H
6 #define _MACHINE__TYPES_H
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 /*
13  * Guess on types by examining *_MIN / *_MAX defines.
14  */
15 #if defined(__GNUC__) && (__GNUC__ >= 3 ) \
16   && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2 )
17 /* GCC >= 3.3.0 has __<val>__ implicitly defined. */
18 #define __EXP(x) __##x##__
19 #else
20 /* Fall back to POSIX versions from <limits.h> */
21 #define __EXP(x) x
22 #include <limits.h>
23 #endif
24 
25 #if __EXP(SCHAR_MAX) == 0x7f
26 typedef signed char __int8_t ;
27 typedef unsigned char __uint8_t ;
28 #define ___int8_t_defined 1
29 #endif
30 
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
43 #endif
44 
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
49 
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
54 #endif
55 #endif
56 
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
73 #endif
74 
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
79 
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
84 #endif
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
89 #endif
90 #endif
91 
92 #if __EXP(LONG_MAX) > 0x7fffffff
93 typedef signed long __int64_t;
94 typedef unsigned long __uint64_t;
95 #define ___int64_t_defined 1
96 
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
102 
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
108 
109 #elif  __EXP(INT_MAX) > 0x7fffffff
110 typedef signed int __int64_t;
111 typedef unsigned int __uint64_t;
112 #define ___int64_t_defined 1
113 #endif
114 
115 #undef __EXP
116 
117 #ifdef __cplusplus
118 }
119 #endif
120 
121 #endif /* _MACHINE__TYPES_H */
122