Subversion Repositories Kolibri OS

Rev

Rev 4921 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 1
/*
6099 serge 2
 *  $Id$
4349 Serge 3
 */
4
 
5
#ifndef _MACHINE__DEFAULT_TYPES_H
6
#define _MACHINE__DEFAULT_TYPES_H
7
 
4921 Serge 8
#include 
4349 Serge 9
 
10
/*
11
 * Guess on types by examining *_MIN / *_MAX defines.
12
 */
4921 Serge 13
#if __GNUC_PREREQ (3, 3)
4349 Serge 14
/* GCC >= 3.3.0 has ____ implicitly defined. */
15
#define __EXP(x) __##x##__
16
#else
17
/* Fall back to POSIX versions from  */
18
#define __EXP(x) x
19
#include 
20
#endif
21
 
4921 Serge 22
#ifdef __cplusplus
23
extern "C" {
24
#endif
25
 
26
#ifdef __INT8_TYPE__
27
typedef __INT8_TYPE__ __int8_t;
6099 serge 28
#ifdef __UINT8_TYPE__
4921 Serge 29
typedef __UINT8_TYPE__ __uint8_t;
6099 serge 30
#else
31
typedef unsigned __INT8_TYPE__ __uint8_t;
32
#endif
4921 Serge 33
#define ___int8_t_defined 1
34
#elif __EXP(SCHAR_MAX) == 0x7f
4349 Serge 35
typedef signed char __int8_t ;
36
typedef unsigned char __uint8_t ;
37
#define ___int8_t_defined 1
38
#endif
39
 
4921 Serge 40
#ifdef __INT16_TYPE__
41
typedef __INT16_TYPE__ __int16_t;
6099 serge 42
#ifdef __UINT16_TYPE__
4921 Serge 43
typedef __UINT16_TYPE__ __uint16_t;
6099 serge 44
#else
45
typedef unsigned __INT16_TYPE__ __uint16_t;
46
#endif
4921 Serge 47
#define ___int16_t_defined 1
48
#elif __EXP(INT_MAX) == 0x7fff
4349 Serge 49
typedef signed int __int16_t;
50
typedef unsigned int __uint16_t;
51
#define ___int16_t_defined 1
52
#elif __EXP(SHRT_MAX) == 0x7fff
53
typedef signed short __int16_t;
54
typedef unsigned short __uint16_t;
55
#define ___int16_t_defined 1
56
#elif __EXP(SCHAR_MAX) == 0x7fff
57
typedef signed char __int16_t;
58
typedef unsigned char __uint16_t;
59
#define ___int16_t_defined 1
60
#endif
61
 
4921 Serge 62
#ifdef __INT32_TYPE__
63
typedef __INT32_TYPE__ __int32_t;
6099 serge 64
#ifdef __UINT32_TYPE__
4921 Serge 65
typedef __UINT32_TYPE__ __uint32_t;
6099 serge 66
#else
67
typedef unsigned __INT32_TYPE__ __uint32_t;
68
#endif
4921 Serge 69
#define ___int32_t_defined 1
70
#elif __EXP(INT_MAX) == 0x7fffffffL
4349 Serge 71
typedef signed int __int32_t;
72
typedef unsigned int __uint32_t;
73
#define ___int32_t_defined 1
74
#elif __EXP(LONG_MAX) == 0x7fffffffL
75
typedef signed long __int32_t;
76
typedef unsigned long __uint32_t;
77
#define ___int32_t_defined 1
78
#elif __EXP(SHRT_MAX) == 0x7fffffffL
79
typedef signed short __int32_t;
80
typedef unsigned short __uint32_t;
81
#define ___int32_t_defined 1
82
#elif __EXP(SCHAR_MAX) == 0x7fffffffL
83
typedef signed char __int32_t;
84
typedef unsigned char __uint32_t;
85
#define ___int32_t_defined 1
86
#endif
87
 
4921 Serge 88
#ifdef __INT64_TYPE__
89
typedef __INT64_TYPE__ __int64_t;
6099 serge 90
#ifdef __UINT64_TYPE__
4921 Serge 91
typedef __UINT64_TYPE__ __uint64_t;
6099 serge 92
#else
93
typedef unsigned __INT64_TYPE__ __uint64_t;
94
#endif
4921 Serge 95
#define ___int64_t_defined 1
96
#elif __EXP(LONG_MAX) > 0x7fffffff
4349 Serge 97
typedef signed long __int64_t;
98
typedef unsigned long __uint64_t;
99
#define ___int64_t_defined 1
100
 
101
/* GCC has __LONG_LONG_MAX__ */
102
#elif  defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff)
103
typedef signed long long __int64_t;
104
typedef unsigned long long __uint64_t;
105
#define ___int64_t_defined 1
106
 
107
/* POSIX mandates LLONG_MAX in  */
108
#elif  defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff)
109
typedef signed long long __int64_t;
110
typedef unsigned long long __uint64_t;
111
#define ___int64_t_defined 1
112
 
113
#elif  __EXP(INT_MAX) > 0x7fffffff
114
typedef signed int __int64_t;
115
typedef unsigned int __uint64_t;
116
#define ___int64_t_defined 1
117
#endif
118
 
4921 Serge 119
#ifdef __INT_LEAST8_TYPE__
120
typedef __INT_LEAST8_TYPE__ __int_least8_t;
6099 serge 121
#ifdef __UINT_LEAST8_TYPE__
4921 Serge 122
typedef __UINT_LEAST8_TYPE__ __uint_least8_t;
6099 serge 123
#else
124
typedef unsigned __INT_LEAST8_TYPE__ __uint_least8_t;
125
#endif
4921 Serge 126
#define ___int_least8_t_defined 1
127
#elif defined(___int8_t_defined)
128
typedef __int8_t __int_least8_t;
129
typedef __uint8_t __uint_least8_t;
130
#define ___int_least8_t_defined 1
131
#elif defined(___int16_t_defined)
132
typedef __int16_t __int_least8_t;
133
typedef __uint16_t __uint_least8_t;
134
#define ___int_least8_t_defined 1
135
#elif defined(___int32_t_defined)
136
typedef __int32_t __int_least8_t;
137
typedef __uint32_t __uint_least8_t;
138
#define ___int_least8_t_defined 1
139
#elif defined(___int64_t_defined)
140
typedef __int64_t __int_least8_t;
141
typedef __uint64_t __uint_least8_t;
142
#define ___int_least8_t_defined 1
143
#endif
144
 
145
#ifdef __INT_LEAST16_TYPE__
146
typedef __INT_LEAST16_TYPE__ __int_least16_t;
6099 serge 147
#ifdef __UINT_LEAST16_TYPE__
4921 Serge 148
typedef __UINT_LEAST16_TYPE__ __uint_least16_t;
6099 serge 149
#else
150
typedef unsigned __INT_LEAST16_TYPE__ __uint_least16_t;
151
#endif
4921 Serge 152
#define ___int_least16_t_defined 1
153
#elif defined(___int16_t_defined)
154
typedef __int16_t __int_least16_t;
155
typedef __uint16_t __uint_least16_t;
156
#define ___int_least16_t_defined 1
157
#elif defined(___int32_t_defined)
158
typedef __int32_t __int_least16_t;
159
typedef __uint32_t __uint_least16_t;
160
#define ___int_least16_t_defined 1
161
#elif defined(___int64_t_defined)
162
typedef __int64_t __int_least16_t;
163
typedef __uint64_t __uint_least16_t;
164
#define ___int_least16_t_defined 1
165
#endif
166
 
167
#ifdef __INT_LEAST32_TYPE__
168
typedef __INT_LEAST32_TYPE__ __int_least32_t;
6099 serge 169
#ifdef __UINT_LEAST32_TYPE__
4921 Serge 170
typedef __UINT_LEAST32_TYPE__ __uint_least32_t;
6099 serge 171
#else
172
typedef unsigned __INT_LEAST32_TYPE__ __uint_least32_t;
173
#endif
4921 Serge 174
#define ___int_least32_t_defined 1
175
#elif defined(___int32_t_defined)
176
typedef __int32_t __int_least32_t;
177
typedef __uint32_t __uint_least32_t;
178
#define ___int_least32_t_defined 1
179
#elif defined(___int64_t_defined)
180
typedef __int64_t __int_least32_t;
181
typedef __uint64_t __uint_least32_t;
182
#define ___int_least32_t_defined 1
183
#endif
184
 
185
#ifdef __INT_LEAST64_TYPE__
186
typedef __INT_LEAST64_TYPE__ __int_least64_t;
6099 serge 187
#ifdef __UINT_LEAST64_TYPE__
4921 Serge 188
typedef __UINT_LEAST64_TYPE__ __uint_least64_t;
6099 serge 189
#else
190
typedef unsigned __INT_LEAST64_TYPE__ __uint_least64_t;
191
#endif
4921 Serge 192
#define ___int_least64_t_defined 1
193
#elif defined(___int64_t_defined)
194
typedef __int64_t __int_least64_t;
195
typedef __uint64_t __uint_least64_t;
196
#define ___int_least64_t_defined 1
197
#endif
198
 
199
#ifdef __INTPTR_TYPE__
200
typedef __INTPTR_TYPE__ __intptr_t;
6099 serge 201
#ifdef __UINTPTR_TYPE__
4921 Serge 202
typedef __UINTPTR_TYPE__ __uintptr_t;
6099 serge 203
#else
204
typedef unsigned __INTPTR_TYPE__ __uintptr_t;
205
#endif
4921 Serge 206
#elif defined(__PTRDIFF_TYPE__)
207
typedef __PTRDIFF_TYPE__ __intptr_t;
208
typedef unsigned __PTRDIFF_TYPE__ __uintptr_t;
209
#else
210
typedef long __intptr_t;
211
typedef unsigned long __uintptr_t;
212
#endif
213
 
4349 Serge 214
#undef __EXP
215
 
216
#ifdef __cplusplus
217
}
218
#endif
219
 
220
#endif /* _MACHINE__DEFAULT_TYPES_H */