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 |