Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4973 right-hear 1
#ifndef _INTTYPES_H
2
#define _INTTYPES_H
3
 
4
#include 
5
#include 
6
 
7
__BEGIN_DECLS
8
 
9
# if __WORDSIZE == 64
10
#  define __PRI64_PREFIX	"l"
11
#  define __PRIPTR_PREFIX	"l"
12
# else
13
#  define __PRI64_PREFIX	"ll"
14
#  define __PRIPTR_PREFIX
15
# endif
16
 
17
/* Macros for printing format specifiers.  */
18
 
19
/* Decimal notation.  */
20
# define PRId8		"d"
21
# define PRId16		"d"
22
# define PRId32		"d"
23
# define PRId64		__PRI64_PREFIX "d"
24
 
25
# define PRIdLEAST8	"d"
26
# define PRIdLEAST16	"d"
27
# define PRIdLEAST32	"d"
28
# define PRIdLEAST64	__PRI64_PREFIX "d"
29
 
30
# define PRIdFAST8	"d"
31
# define PRIdFAST16	"d"
32
# define PRIdFAST32	"d"
33
# define PRIdFAST64	__PRI64_PREFIX "d"
34
 
35
 
36
# define PRIi8		"i"
37
# define PRIi16		"i"
38
# define PRIi32		"i"
39
# define PRIi64		__PRI64_PREFIX "i"
40
 
41
# define PRIiLEAST8	"i"
42
# define PRIiLEAST16	"i"
43
# define PRIiLEAST32	"i"
44
# define PRIiLEAST64	__PRI64_PREFIX "i"
45
 
46
# define PRIiFAST8	"i"
47
# define PRIiFAST16	"i"
48
# define PRIiFAST32	"i"
49
# define PRIiFAST64	__PRI64_PREFIX "i"
50
 
51
/* Octal notation.  */
52
# define PRIo8		"o"
53
# define PRIo16		"o"
54
# define PRIo32		"o"
55
# define PRIo64		__PRI64_PREFIX "o"
56
 
57
# define PRIoLEAST8	"o"
58
# define PRIoLEAST16	"o"
59
# define PRIoLEAST32	"o"
60
# define PRIoLEAST64	__PRI64_PREFIX "o"
61
 
62
# define PRIoFAST8	"o"
63
# define PRIoFAST16	"o"
64
# define PRIoFAST32	"o"
65
# define PRIoFAST64	__PRI64_PREFIX "o"
66
 
67
/* Unsigned integers.  */
68
# define PRIu8		"u"
69
# define PRIu16		"u"
70
# define PRIu32		"u"
71
# define PRIu64		__PRI64_PREFIX "u"
72
 
73
# define PRIuLEAST8	"u"
74
# define PRIuLEAST16	"u"
75
# define PRIuLEAST32	"u"
76
# define PRIuLEAST64	__PRI64_PREFIX "u"
77
 
78
# define PRIuFAST8	"u"
79
# define PRIuFAST16	"u"
80
# define PRIuFAST32	"u"
81
# define PRIuFAST64	__PRI64_PREFIX "u"
82
 
83
/* lowercase hexadecimal notation.  */
84
# define PRIx8		"x"
85
# define PRIx16		"x"
86
# define PRIx32		"x"
87
# define PRIx64		__PRI64_PREFIX "x"
88
 
89
# define PRIxLEAST8	"x"
90
# define PRIxLEAST16	"x"
91
# define PRIxLEAST32	"x"
92
# define PRIxLEAST64	__PRI64_PREFIX "x"
93
 
94
# define PRIxFAST8	"x"
95
# define PRIxFAST16	"x"
96
# define PRIxFAST32	"x"
97
# define PRIxFAST64	__PRI64_PREFIX "x"
98
 
99
/* UPPERCASE hexadecimal notation.  */
100
# define PRIX8		"X"
101
# define PRIX16		"X"
102
# define PRIX32		"X"
103
# define PRIX64		__PRI64_PREFIX "X"
104
 
105
# define PRIXLEAST8	"X"
106
# define PRIXLEAST16	"X"
107
# define PRIXLEAST32	"X"
108
# define PRIXLEAST64	__PRI64_PREFIX "X"
109
 
110
# define PRIXFAST8	"X"
111
# define PRIXFAST16	"X"
112
# define PRIXFAST32	"X"
113
# define PRIXFAST64	__PRI64_PREFIX "X"
114
 
115
 
116
/* Macros for printing `intmax_t' and `uintmax_t'.  */
117
# define PRIdMAX	__PRI64_PREFIX "d"
118
# define PRIiMAX	__PRI64_PREFIX "i"
119
# define PRIoMAX	__PRI64_PREFIX "o"
120
# define PRIuMAX	__PRI64_PREFIX "u"
121
# define PRIxMAX	__PRI64_PREFIX "x"
122
# define PRIXMAX	__PRI64_PREFIX "X"
123
 
124
 
125
/* Macros for printing `intptr_t' and `uintptr_t'.  */
126
# define PRIdPTR	__PRIPTR_PREFIX "d"
127
# define PRIiPTR	__PRIPTR_PREFIX "i"
128
# define PRIoPTR	__PRIPTR_PREFIX "o"
129
# define PRIuPTR	__PRIPTR_PREFIX "u"
130
# define PRIxPTR	__PRIPTR_PREFIX "x"
131
# define PRIXPTR	__PRIPTR_PREFIX "X"
132
 
133
 
134
/* Macros for scanning format specifiers.  */
135
 
136
/* Signed decimal notation.  */
137
# define SCNd8		"hhd"
138
# define SCNd16		"hd"
139
# define SCNd32		"d"
140
# define SCNd64		__PRI64_PREFIX "d"
141
 
142
# define SCNdLEAST8	"hhd"
143
# define SCNdLEAST16	"hd"
144
# define SCNdLEAST32	"d"
145
# define SCNdLEAST64	__PRI64_PREFIX "d"
146
 
147
# define SCNdFAST8	"hhd"
148
# define SCNdFAST16	__PRIPTR_PREFIX "d"
149
# define SCNdFAST32	__PRIPTR_PREFIX "d"
150
# define SCNdFAST64	__PRI64_PREFIX "d"
151
 
152
/* Signed decimal notation.  */
153
# define SCNi8		"hhi"
154
# define SCNi16		"hi"
155
# define SCNi32		"i"
156
# define SCNi64		__PRI64_PREFIX "i"
157
 
158
# define SCNiLEAST8	"hhi"
159
# define SCNiLEAST16	"hi"
160
# define SCNiLEAST32	"i"
161
# define SCNiLEAST64	__PRI64_PREFIX "i"
162
 
163
# define SCNiFAST8	"hhi"
164
# define SCNiFAST16	__PRIPTR_PREFIX "i"
165
# define SCNiFAST32	__PRIPTR_PREFIX "i"
166
# define SCNiFAST64	__PRI64_PREFIX "i"
167
 
168
/* Unsigned decimal notation.  */
169
# define SCNu8		"hhu"
170
# define SCNu16		"hu"
171
# define SCNu32		"u"
172
# define SCNu64		__PRI64_PREFIX "u"
173
 
174
# define SCNuLEAST8	"hhu"
175
# define SCNuLEAST16	"hu"
176
# define SCNuLEAST32	"u"
177
# define SCNuLEAST64	__PRI64_PREFIX "u"
178
 
179
# define SCNuFAST8	"hhu"
180
# define SCNuFAST16	__PRIPTR_PREFIX "u"
181
# define SCNuFAST32	__PRIPTR_PREFIX "u"
182
# define SCNuFAST64	__PRI64_PREFIX "u"
183
 
184
/* Octal notation.  */
185
# define SCNo8		"hho"
186
# define SCNo16		"ho"
187
# define SCNo32		"o"
188
# define SCNo64		__PRI64_PREFIX "o"
189
 
190
# define SCNoLEAST8	"hho"
191
# define SCNoLEAST16	"ho"
192
# define SCNoLEAST32	"o"
193
# define SCNoLEAST64	__PRI64_PREFIX "o"
194
 
195
# define SCNoFAST8	"hho"
196
# define SCNoFAST16	__PRIPTR_PREFIX "o"
197
# define SCNoFAST32	__PRIPTR_PREFIX "o"
198
# define SCNoFAST64	__PRI64_PREFIX "o"
199
 
200
/* Hexadecimal notation.  */
201
# define SCNx8		"hhx"
202
# define SCNx16		"hx"
203
# define SCNx32		"x"
204
# define SCNx64		__PRI64_PREFIX "x"
205
 
206
# define SCNxLEAST8	"hhx"
207
# define SCNxLEAST16	"hx"
208
# define SCNxLEAST32	"x"
209
# define SCNxLEAST64	__PRI64_PREFIX "x"
210
 
211
# define SCNxFAST8	"hhx"
212
# define SCNxFAST16	__PRIPTR_PREFIX "x"
213
# define SCNxFAST32	__PRIPTR_PREFIX "x"
214
# define SCNxFAST64	__PRI64_PREFIX "x"
215
 
216
 
217
/* Macros for scanning `intmax_t' and `uintmax_t'.  */
218
# define SCNdMAX	__PRI64_PREFIX "d"
219
# define SCNiMAX	__PRI64_PREFIX "i"
220
# define SCNoMAX	__PRI64_PREFIX "o"
221
# define SCNuMAX	__PRI64_PREFIX "u"
222
# define SCNxMAX	__PRI64_PREFIX "x"
223
 
224
/* Macros for scanning `intptr_t' and `uintptr_t'.  */
225
# define SCNdPTR	__PRIPTR_PREFIX "d"
226
# define SCNiPTR	__PRIPTR_PREFIX "i"
227
# define SCNoPTR	__PRIPTR_PREFIX "o"
228
# define SCNuPTR	__PRIPTR_PREFIX "u"
229
# define SCNxPTR	__PRIPTR_PREFIX "x"
230
 
231
typedef signed char int8_t;
232
typedef signed short int16_t;
233
typedef signed int int32_t;
234
 
235
typedef unsigned char uint8_t;
236
typedef unsigned short uint16_t;
237
typedef unsigned int uint32_t;
238
 
239
typedef signed long int intptr_t;
240
typedef unsigned long int uintptr_t;
241
 
242
#ifndef __STRICT_ANSI__
243
__extension__ typedef signed long long int64_t;
244
__extension__ typedef unsigned long long uint64_t;
245
__extension__ typedef signed long long int intmax_t;
246
__extension__ typedef unsigned long long int uintmax_t;
247
#endif
248
 
249
__END_DECLS
250
 
251
#endif