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