1 /*        $NetBSD: int_fmtio.h,v 1.7 2018/03/05 00:20:08 christos Exp $         */
2 
3 /*-
4  * Copyright (c) 2001 The NetBSD Foundation, Inc.
5  * All rights reserved.
6  *
7  * This code is derived from software contributed to The NetBSD Foundation
8  * by Klaus Klein.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 
32 #ifndef _POWERPC_INT_FMTIO_H_
33 #define _POWERPC_INT_FMTIO_H_
34 
35 #ifdef __INTPTR_FMTd__
36 #include <sys/common_int_fmtio.h>
37 #else
38 /*
39  * 7.8.1 Macros for format specifiers
40  */
41 
42 /* fprintf macros for signed integers */
43 
44 #define   PRId8               "d"       /* int8_t           */
45 #define   PRId16              "d"       /* int16_t                    */
46 #define   PRId32              "d"       /* int32_t                    */
47 #ifdef _LP64
48 #define   PRId64              "ld"      /* int64_t                    */
49 #else
50 #define   PRId64              "lld"     /* int64_t                    */
51 #endif
52 #define   PRIdLEAST8          "d"       /* int_least8_t               */
53 #define   PRIdLEAST16         "d"       /* int_least16_t    */
54 #define   PRIdLEAST32         "d"       /* int_least32_t    */
55 #ifdef _LP64
56 #define   PRIdLEAST64         "ld"      /* int_least64_t    */
57 #else
58 #define   PRIdLEAST64         "lld"     /* int_least64_t    */
59 #endif
60 #define   PRIdFAST8 "d"       /* int_fast8_t                */
61 #define   PRIdFAST16          "d"       /* int_fast16_t               */
62 #define   PRIdFAST32          "d"       /* int_fast32_t               */
63 #ifdef _LP64
64 #define   PRIdFAST64          "ld"      /* int_fast64_t               */
65 #define   PRIdMAX             "ld"      /* intmax_t                   */
66 #define   PRIdPTR             "ld"      /* intptr_t                   */
67 #else
68 #define   PRIdFAST64          "lld"     /* int_fast64_t               */
69 #define   PRIdMAX             "lld"     /* intmax_t                   */
70 #define   PRIdPTR             "d"       /* intptr_t                   */
71 #endif
72 
73 #define   PRIi8               "i"       /* int8_t           */
74 #define   PRIi16              "i"       /* int16_t                    */
75 #define   PRIi32              "i"       /* int32_t                    */
76 #ifdef _LP64
77 #define   PRIi64              "li"      /* int64_t                    */
78 #else
79 #define   PRIi64              "lli"     /* int64_t                    */
80 #endif
81 #define   PRIiLEAST8          "i"       /* int_least8_t               */
82 #define   PRIiLEAST16         "i"       /* int_least16_t    */
83 #define   PRIiLEAST32         "i"       /* int_least32_t    */
84 #ifdef _LP64
85 #define   PRIiLEAST64         "li"      /* int_least64_t    */
86 #else
87 #define   PRIiLEAST64         "lli"     /* int_least64_t    */
88 #endif
89 #define   PRIiFAST8 "i"       /* int_fast8_t                */
90 #define   PRIiFAST16          "i"       /* int_fast16_t               */
91 #define   PRIiFAST32          "i"       /* int_fast32_t               */
92 #ifdef _LP64
93 #define   PRIiFAST64          "li"      /* int_fast64_t               */
94 #define   PRIiMAX             "li"      /* intmax_t                   */
95 #define   PRIiPTR             "li"      /* intptr_t                   */
96 #else
97 #define   PRIiFAST64          "lli"     /* int_fast64_t               */
98 #define   PRIiMAX             "lli"     /* intmax_t                   */
99 #define   PRIiPTR             "i"       /* intptr_t                   */
100 #endif
101 
102 /* fprintf macros for unsigned integers */
103 
104 #define   PRIo8               "o"       /* uint8_t                    */
105 #define   PRIo16              "o"       /* uint16_t                   */
106 #define   PRIo32              "o"       /* uint32_t                   */
107 #ifdef _LP64
108 #define   PRIo64              "lo"      /* uint64_t                   */
109 #else
110 #define   PRIo64              "llo"     /* uint64_t                   */
111 #endif
112 #define   PRIoLEAST8          "o"       /* uint_least8_t    */
113 #define   PRIoLEAST16         "o"       /* uint_least16_t   */
114 #define   PRIoLEAST32         "o"       /* uint_least32_t   */
115 #ifdef _LP64
116 #define   PRIoLEAST64         "lo"      /* uint_least64_t   */
117 #else
118 #define   PRIoLEAST64         "llo"     /* uint_least64_t   */
119 #endif
120 #define   PRIoFAST8 "o"       /* uint_fast8_t               */
121 #define   PRIoFAST16          "o"       /* uint_fast16_t    */
122 #define   PRIoFAST32          "o"       /* uint_fast32_t    */
123 #ifdef _LP64
124 #define   PRIoFAST64          "lo"      /* uint_fast64_t    */
125 #define   PRIoMAX             "lo"      /* uintmax_t                  */
126 #define   PRIoPTR             "lo"      /* uintptr_t                  */
127 #else
128 #define   PRIoFAST64          "llo"     /* uint_fast64_t    */
129 #define   PRIoMAX             "llo"     /* uintmax_t                  */
130 #define   PRIoPTR             "o"       /* uintptr_t                  */
131 #endif
132 
133 #define   PRIu8               "u"       /* uint8_t                    */
134 #define   PRIu16              "u"       /* uint16_t                   */
135 #define   PRIu32              "u"       /* uint32_t                   */
136 #ifdef _LP64
137 #define   PRIu64              "lu"      /* uint64_t                   */
138 #else
139 #define   PRIu64              "llu"     /* uint64_t                   */
140 #endif
141 #define   PRIuLEAST8          "u"       /* uint_least8_t    */
142 #define   PRIuLEAST16         "u"       /* uint_least16_t   */
143 #define   PRIuLEAST32         "u"       /* uint_least32_t   */
144 #ifdef _LP64
145 #define   PRIuLEAST64         "lu"      /* uint_least64_t   */
146 #else
147 #define   PRIuLEAST64         "llu"     /* uint_least64_t   */
148 #endif
149 #define   PRIuFAST8 "u"       /* uint_fast8_t               */
150 #define   PRIuFAST16          "u"       /* uint_fast16_t    */
151 #define   PRIuFAST32          "u"       /* uint_fast32_t    */
152 #ifdef _LP64
153 #define   PRIuFAST64          "lu"      /* uint_fast64_t    */
154 #define   PRIuMAX             "lu"      /* uintmax_t                  */
155 #define   PRIuPTR             "lu"      /* uintptr_t                  */
156 #else
157 #define   PRIuFAST64          "llu"     /* uint_fast64_t    */
158 #define   PRIuMAX             "llu"     /* uintmax_t                  */
159 #define   PRIuPTR             "u"       /* uintptr_t                  */
160 #endif
161 
162 #define   PRIx8               "x"       /* uint8_t                    */
163 #define   PRIx16              "x"       /* uint16_t                   */
164 #define   PRIx32              "x"       /* uint32_t                   */
165 #ifdef _LP64
166 #define   PRIx64              "lx"      /* uint64_t                   */
167 #else
168 #define   PRIx64              "llx"     /* uint64_t                   */
169 #endif
170 #define   PRIxLEAST8          "x"       /* uint_least8_t    */
171 #define   PRIxLEAST16         "x"       /* uint_least16_t   */
172 #define   PRIxLEAST32         "x"       /* uint_least32_t   */
173 #ifdef _LP64
174 #define   PRIxLEAST64         "lx"      /* uint_least64_t   */
175 #else
176 #define   PRIxLEAST64         "llx"     /* uint_least64_t   */
177 #endif
178 #define   PRIxFAST8 "x"       /* uint_fast8_t               */
179 #define   PRIxFAST16          "x"       /* uint_fast16_t    */
180 #define   PRIxFAST32          "x"       /* uint_fast32_t    */
181 #ifdef _LP64
182 #define   PRIxFAST64          "lx"      /* uint_fast64_t    */
183 #define   PRIxMAX             "lx"      /* uintmax_t                  */
184 #define   PRIxPTR             "lx"      /* uintptr_t                  */
185 #else
186 #define   PRIxFAST64          "llx"     /* uint_fast64_t    */
187 #define   PRIxMAX             "llx"     /* uintmax_t                  */
188 #define   PRIxPTR             "x"       /* uintptr_t                  */
189 #endif
190 
191 #define   PRIX8               "X"       /* uint8_t                    */
192 #define   PRIX16              "X"       /* uint16_t                   */
193 #define   PRIX32              "X"       /* uint32_t                   */
194 #ifdef _LP64
195 #define   PRIX64              "lX"      /* uint64_t                   */
196 #else
197 #define   PRIX64              "llX"     /* uint64_t                   */
198 #endif
199 #define   PRIXLEAST8          "X"       /* uint_least8_t    */
200 #define   PRIXLEAST16         "X"       /* uint_least16_t   */
201 #define   PRIXLEAST32         "X"       /* uint_least32_t   */
202 #ifdef _LP64
203 #define   PRIXLEAST64         "lX"      /* uint_least64_t   */
204 #else
205 #define   PRIXLEAST64         "llX"     /* uint_least64_t   */
206 #endif
207 #define   PRIXFAST8 "X"       /* uint_fast8_t               */
208 #define   PRIXFAST16          "X"       /* uint_fast16_t    */
209 #define   PRIXFAST32          "X"       /* uint_fast32_t    */
210 #ifdef _LP64
211 #define   PRIXFAST64          "lX"      /* uint_fast64_t    */
212 #define   PRIXMAX             "lX"      /* uintmax_t                  */
213 #define   PRIXPTR             "lX"      /* uintptr_t                  */
214 #else
215 #define   PRIXFAST64          "llX"     /* uint_fast64_t    */
216 #define   PRIXMAX             "llX"     /* uintmax_t                  */
217 #define   PRIXPTR             "X"       /* uintptr_t                  */
218 #endif
219 
220 /* fscanf macros for signed integers */
221 
222 #define   SCNd8               "hhd"     /* int8_t           */
223 #define   SCNd16              "hd"      /* int16_t                    */
224 #define   SCNd32              "d"       /* int32_t                    */
225 #ifdef _LP64
226 #define   SCNd64              "ld"      /* int64_t                    */
227 #else
228 #define   SCNd64              "lld"     /* int64_t                    */
229 #endif
230 #define   SCNdLEAST8          "hhd"     /* int_least8_t               */
231 #define   SCNdLEAST16         "hd"      /* int_least16_t    */
232 #define   SCNdLEAST32         "d"       /* int_least32_t    */
233 #ifdef _LP64
234 #define   SCNdLEAST64         "ld"      /* int_least64_t    */
235 #else
236 #define   SCNdLEAST64         "lld"     /* int_least64_t    */
237 #endif
238 #define   SCNdFAST8 "d"       /* int_fast8_t                */
239 #define   SCNdFAST16          "d"       /* int_fast16_t               */
240 #define   SCNdFAST32          "d"       /* int_fast32_t               */
241 #ifdef _LP64
242 #define   SCNdFAST64          "ld"      /* int_fast64_t               */
243 #define   SCNdMAX             "ld"      /* intmax_t                   */
244 #define   SCNdPTR             "ld"      /* intptr_t                   */
245 #else
246 #define   SCNdFAST64          "lld"     /* int_fast64_t               */
247 #define   SCNdMAX             "lld"     /* intmax_t                   */
248 #define   SCNdPTR             "d"       /* intptr_t                   */
249 #endif
250 
251 #define   SCNi8               "hhi"     /* int8_t           */
252 #define   SCNi16              "hi"      /* int16_t                    */
253 #define   SCNi32              "i"       /* int32_t                    */
254 #ifdef _LP64
255 #define   SCNi64              "li"      /* int64_t                    */
256 #else
257 #define   SCNi64              "lli"     /* int64_t                    */
258 #endif
259 #define   SCNiLEAST8          "hhi"     /* int_least8_t               */
260 #define   SCNiLEAST16         "hi"      /* int_least16_t    */
261 #define   SCNiLEAST32         "i"       /* int_least32_t    */
262 #ifdef _LP64
263 #define   SCNiLEAST64         "li"      /* int_least64_t    */
264 #else
265 #define   SCNiLEAST64         "lli"     /* int_least64_t    */
266 #endif
267 #define   SCNiFAST8 "i"       /* int_fast8_t                */
268 #define   SCNiFAST16          "i"       /* int_fast16_t               */
269 #define   SCNiFAST32          "i"       /* int_fast32_t               */
270 #ifdef _LP64
271 #define   SCNiFAST64          "li"      /* int_fast64_t               */
272 #define   SCNiMAX             "li"      /* intmax_t                   */
273 #define   SCNiPTR             "li"      /* intptr_t                   */
274 #else
275 #define   SCNiFAST64          "lli"     /* int_fast64_t               */
276 #define   SCNiMAX             "lli"     /* intmax_t                   */
277 #define   SCNiPTR             "i"       /* intptr_t                   */
278 #endif
279 
280 /* fscanf macros for unsigned integers */
281 
282 #define   SCNo8               "hho"     /* uint8_t                    */
283 #define   SCNo16              "ho"      /* uint16_t                   */
284 #define   SCNo32              "o"       /* uint32_t                   */
285 #ifdef _LP64
286 #define   SCNo64              "lo"      /* uint64_t                   */
287 #else
288 #define   SCNo64              "llo"     /* uint64_t                   */
289 #endif
290 #define   SCNoLEAST8          "hho"     /* uint_least8_t    */
291 #define   SCNoLEAST16         "ho"      /* uint_least16_t   */
292 #define   SCNoLEAST32         "o"       /* uint_least32_t   */
293 #ifdef _LP64
294 #define   SCNoLEAST64         "lo"      /* uint_least64_t   */
295 #else
296 #define   SCNoLEAST64         "llo"     /* uint_least64_t   */
297 #endif
298 #define   SCNoFAST8 "o"       /* uint_fast8_t               */
299 #define   SCNoFAST16          "o"       /* uint_fast16_t    */
300 #define   SCNoFAST32          "o"       /* uint_fast32_t    */
301 #ifdef _LP64
302 #define   SCNoFAST64          "lo"      /* uint_fast64_t    */
303 #define   SCNoMAX             "lo"      /* uintmax_t                  */
304 #define   SCNoPTR             "lo"      /* uintptr_t                  */
305 #else
306 #define   SCNoFAST64          "llo"     /* uint_fast64_t    */
307 #define   SCNoMAX             "llo"     /* uintmax_t                  */
308 #define   SCNoPTR             "o"       /* uintptr_t                  */
309 #endif
310 
311 #define   SCNu8               "hhu"     /* uint8_t                    */
312 #define   SCNu16              "hu"      /* uint16_t                   */
313 #define   SCNu32              "u"       /* uint32_t                   */
314 #ifdef _LP64
315 #define   SCNu64              "lu"      /* uint64_t                   */
316 #else
317 #define   SCNu64              "llu"     /* uint64_t                   */
318 #endif
319 #define   SCNuLEAST8          "hhu"     /* uint_least8_t    */
320 #define   SCNuLEAST16         "hu"      /* uint_least16_t   */
321 #define   SCNuLEAST32         "u"       /* uint_least32_t   */
322 #ifdef _LP64
323 #define   SCNuLEAST64         "lu"      /* uint_least64_t   */
324 #else
325 #define   SCNuLEAST64         "llu"     /* uint_least64_t   */
326 #endif
327 #define   SCNuFAST8 "u"       /* uint_fast8_t               */
328 #define   SCNuFAST16          "u"       /* uint_fast16_t    */
329 #define   SCNuFAST32          "u"       /* uint_fast32_t    */
330 #ifdef _LP64
331 #define   SCNuFAST64          "lu"      /* uint_fast64_t    */
332 #define   SCNuMAX             "lu"      /* uintmax_t                  */
333 #define   SCNuPTR             "lu"      /* uintptr_t                  */
334 #else
335 #define   SCNuFAST64          "llu"     /* uint_fast64_t    */
336 #define   SCNuMAX             "llu"     /* uintmax_t                  */
337 #define   SCNuPTR             "u"       /* uintptr_t                  */
338 #endif
339 
340 #define   SCNx8               "hhx"     /* uint8_t                    */
341 #define   SCNx16              "hx"      /* uint16_t                   */
342 #define   SCNx32              "x"       /* uint32_t                   */
343 #ifdef _LP64
344 #define   SCNx64              "lx"      /* uint64_t                   */
345 #else
346 #define   SCNx64              "llx"     /* uint64_t                   */
347 #endif
348 #define   SCNxLEAST8          "hhx"     /* uint_least8_t    */
349 #define   SCNxLEAST16         "hx"      /* uint_least16_t   */
350 #define   SCNxLEAST32         "x"       /* uint_least32_t   */
351 #ifdef _LP64
352 #define   SCNxLEAST64         "lx"      /* uint_least64_t   */
353 #else
354 #define   SCNxLEAST64         "llx"     /* uint_least64_t   */
355 #endif
356 #define   SCNxFAST8 "x"       /* uint_fast8_t               */
357 #define   SCNxFAST16          "x"       /* uint_fast16_t    */
358 #define   SCNxFAST32          "x"       /* uint_fast32_t    */
359 #ifdef _LP64
360 #define   SCNxFAST64          "lx"      /* uint_fast64_t    */
361 #define   SCNxMAX             "lx"      /* uintmax_t                  */
362 #define   SCNxPTR             "lx"      /* uintptr_t                  */
363 #else
364 #define   SCNxFAST64          "llx"     /* uint_fast64_t    */
365 #define   SCNxMAX             "llx"     /* uintmax_t                  */
366 #define   SCNxPTR             "x"       /* uintptr_t                  */
367 #endif
368 
369 #endif /* !__INTPTR_FMTd__ */
370 
371 #endif /* !_POWERPC_INT_FMTIO_H_ */
372