xref: /netbsd-src/sys/sys/common_int_fmtio.h (revision d87708c52a034f41c74ebea7b2da18fb7b2954b7)
1*d87708c5Sjoerg /*	$NetBSD: common_int_fmtio.h,v 1.1 2014/07/25 21:43:13 joerg Exp $	*/
2*d87708c5Sjoerg 
3*d87708c5Sjoerg /*-
4*d87708c5Sjoerg  * Copyright (c) 2014 The NetBSD Foundation, Inc.
5*d87708c5Sjoerg  * All rights reserved.
6*d87708c5Sjoerg  *
7*d87708c5Sjoerg  * This code is derived from software contributed to The NetBSD Foundation
8*d87708c5Sjoerg  * by Joerg Sonnenberger.
9*d87708c5Sjoerg  *
10*d87708c5Sjoerg  * Redistribution and use in source and binary forms, with or without
11*d87708c5Sjoerg  * modification, are permitted provided that the following conditions
12*d87708c5Sjoerg  * are met:
13*d87708c5Sjoerg  * 1. Redistributions of source code must retain the above copyright
14*d87708c5Sjoerg  *    notice, this list of conditions and the following disclaimer.
15*d87708c5Sjoerg  * 2. Redistributions in binary form must reproduce the above copyright
16*d87708c5Sjoerg  *    notice, this list of conditions and the following disclaimer in the
17*d87708c5Sjoerg  *    documentation and/or other materials provided with the distribution.
18*d87708c5Sjoerg  *
19*d87708c5Sjoerg  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20*d87708c5Sjoerg  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21*d87708c5Sjoerg  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22*d87708c5Sjoerg  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23*d87708c5Sjoerg  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24*d87708c5Sjoerg  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25*d87708c5Sjoerg  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26*d87708c5Sjoerg  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27*d87708c5Sjoerg  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28*d87708c5Sjoerg  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29*d87708c5Sjoerg  * POSSIBILITY OF SUCH DAMAGE.
30*d87708c5Sjoerg  */
31*d87708c5Sjoerg 
32*d87708c5Sjoerg #ifndef _SYS_COMMON_INT_FMTIO_H_
33*d87708c5Sjoerg #define _SYS_COMMON_INT_FMTIO_H_
34*d87708c5Sjoerg 
35*d87708c5Sjoerg #ifndef __INTPTR_FMTd__
36*d87708c5Sjoerg #error Your compiler does not provide format string macros.
37*d87708c5Sjoerg #endif
38*d87708c5Sjoerg 
39*d87708c5Sjoerg /*
40*d87708c5Sjoerg  * 7.8.1 Macros for format specifiers
41*d87708c5Sjoerg  */
42*d87708c5Sjoerg 
43*d87708c5Sjoerg /* fprintf macros for signed integers */
44*d87708c5Sjoerg #define	PRId8		__INT8_FMTd__
45*d87708c5Sjoerg #define	PRId16		__INT16_FMTd__
46*d87708c5Sjoerg #define	PRId32		__INT32_FMTd__
47*d87708c5Sjoerg #define	PRId64		__INT64_FMTd__
48*d87708c5Sjoerg #define	PRIdLEAST8	__INT_LEAST8_FMTd__
49*d87708c5Sjoerg #define	PRIdLEAST16	__INT_LEAST16_FMTd__
50*d87708c5Sjoerg #define	PRIdLEAST32	__INT_LEAST32_FMTd__
51*d87708c5Sjoerg #define	PRIdLEAST64	__INT_LEAST64_FMTd__
52*d87708c5Sjoerg #define	PRIdFAST8	__INT_FAST8_FMTd__
53*d87708c5Sjoerg #define	PRIdFAST16	__INT_FAST16_FMTd__
54*d87708c5Sjoerg #define	PRIdFAST32	__INT_FAST32_FMTd__
55*d87708c5Sjoerg #define	PRIdFAST64	__INT_FAST64_FMTd__
56*d87708c5Sjoerg #define	PRIdMAX		__INTMAX_FMTd__
57*d87708c5Sjoerg #define	PRIdPTR		__INTPTR_FMTd__
58*d87708c5Sjoerg 
59*d87708c5Sjoerg #define	PRIi8		__INT8_FMTi__
60*d87708c5Sjoerg #define	PRIi16		__INT16_FMTi__
61*d87708c5Sjoerg #define	PRIi32		__INT32_FMTi__
62*d87708c5Sjoerg #define	PRIi64		__INT64_FMTi__
63*d87708c5Sjoerg #define	PRIiLEAST8	__INT_LEAST8_FMTi__
64*d87708c5Sjoerg #define	PRIiLEAST16	__INT_LEAST16_FMTi__
65*d87708c5Sjoerg #define	PRIiLEAST32	__INT_LEAST32_FMTi__
66*d87708c5Sjoerg #define	PRIiLEAST64	__INT_LEAST64_FMTi__
67*d87708c5Sjoerg #define	PRIiFAST8	__INT_FAST8_FMTi__
68*d87708c5Sjoerg #define	PRIiFAST16	__INT_FAST16_FMTi__
69*d87708c5Sjoerg #define	PRIiFAST32	__INT_FAST32_FMTi__
70*d87708c5Sjoerg #define	PRIiFAST64	__INT_FAST64_FMTi__
71*d87708c5Sjoerg #define	PRIiMAX		__INTMAX_FMTi__
72*d87708c5Sjoerg #define	PRIiPTR		__INTPTR_FMTi__
73*d87708c5Sjoerg 
74*d87708c5Sjoerg /* fprintf macros for unsigned integers */
75*d87708c5Sjoerg 
76*d87708c5Sjoerg #define	PRIo8		__UINT8_FMTo__
77*d87708c5Sjoerg #define	PRIo16		__UINT16_FMTo__
78*d87708c5Sjoerg #define	PRIo32		__UINT32_FMTo__
79*d87708c5Sjoerg #define	PRIo64		__UINT64_FMTo__
80*d87708c5Sjoerg #define	PRIoLEAST8	__UINT_LEAST8_FMTo__
81*d87708c5Sjoerg #define	PRIoLEAST16	__UINT_LEAST16_FMTo__
82*d87708c5Sjoerg #define	PRIoLEAST32	__UINT_LEAST32_FMTo__
83*d87708c5Sjoerg #define	PRIoLEAST64	__UINT_LEAST64_FMTo__
84*d87708c5Sjoerg #define	PRIoFAST8	__UINT_FAST8_FMTo__
85*d87708c5Sjoerg #define	PRIoFAST16	__UINT_FAST16_FMTo__
86*d87708c5Sjoerg #define	PRIoFAST32	__UINT_FAST32_FMTo__
87*d87708c5Sjoerg #define	PRIoFAST64	__UINT_FAST64_FMTo__
88*d87708c5Sjoerg #define	PRIoMAX		__UINTMAX_FMTo__
89*d87708c5Sjoerg #define	PRIoPTR		__UINTPTR_FMTo__
90*d87708c5Sjoerg 
91*d87708c5Sjoerg #define	PRIu8		__UINT8_FMTu__
92*d87708c5Sjoerg #define	PRIu16		__UINT16_FMTu__
93*d87708c5Sjoerg #define	PRIu32		__UINT32_FMTu__
94*d87708c5Sjoerg #define	PRIu64		__UINT64_FMTu__
95*d87708c5Sjoerg #define	PRIuLEAST8	__UINT_LEAST8_FMTu__
96*d87708c5Sjoerg #define	PRIuLEAST16	__UINT_LEAST16_FMTu__
97*d87708c5Sjoerg #define	PRIuLEAST32	__UINT_LEAST32_FMTu__
98*d87708c5Sjoerg #define	PRIuLEAST64	__UINT_LEAST64_FMTu__
99*d87708c5Sjoerg #define	PRIuFAST8	__UINT_FAST8_FMTu__
100*d87708c5Sjoerg #define	PRIuFAST16	__UINT_FAST16_FMTu__
101*d87708c5Sjoerg #define	PRIuFAST32	__UINT_FAST32_FMTu__
102*d87708c5Sjoerg #define	PRIuFAST64	__UINT_FAST64_FMTu__
103*d87708c5Sjoerg #define	PRIuMAX		__UINTMAX_FMTu__
104*d87708c5Sjoerg #define	PRIuPTR		__UINTPTR_FMTu__
105*d87708c5Sjoerg 
106*d87708c5Sjoerg #define	PRIx8		__UINT8_FMTx__
107*d87708c5Sjoerg #define	PRIx16		__UINT16_FMTx__
108*d87708c5Sjoerg #define	PRIx32		__UINT32_FMTx__
109*d87708c5Sjoerg #define	PRIx64		__UINT64_FMTx__
110*d87708c5Sjoerg #define	PRIxLEAST8	__UINT_LEAST8_FMTx__
111*d87708c5Sjoerg #define	PRIxLEAST16	__UINT_LEAST16_FMTx__
112*d87708c5Sjoerg #define	PRIxLEAST32	__UINT_LEAST32_FMTx__
113*d87708c5Sjoerg #define	PRIxLEAST64	__UINT_LEAST64_FMTx__
114*d87708c5Sjoerg #define	PRIxFAST8	__UINT_FAST8_FMTx__
115*d87708c5Sjoerg #define	PRIxFAST16	__UINT_FAST16_FMTx__
116*d87708c5Sjoerg #define	PRIxFAST32	__UINT_FAST32_FMTx__
117*d87708c5Sjoerg #define	PRIxFAST64	__UINT_FAST64_FMTx__
118*d87708c5Sjoerg #define	PRIxMAX		__UINTMAX_FMTx__
119*d87708c5Sjoerg #define	PRIxPTR		__UINTPTR_FMTx__
120*d87708c5Sjoerg 
121*d87708c5Sjoerg #define	PRIX8		__UINT8_FMTX__
122*d87708c5Sjoerg #define	PRIX16		__UINT16_FMTX__
123*d87708c5Sjoerg #define	PRIX32		__UINT32_FMTX__
124*d87708c5Sjoerg #define	PRIX64		__UINT64_FMTX__
125*d87708c5Sjoerg #define	PRIXLEAST8	__UINT_LEAST8_FMTX__
126*d87708c5Sjoerg #define	PRIXLEAST16	__UINT_LEAST16_FMTX__
127*d87708c5Sjoerg #define	PRIXLEAST32	__UINT_LEAST32_FMTX__
128*d87708c5Sjoerg #define	PRIXLEAST64	__UINT_LEAST64_FMTX__
129*d87708c5Sjoerg #define	PRIXFAST8	__UINT_FAST8_FMTX__
130*d87708c5Sjoerg #define	PRIXFAST16	__UINT_FAST16_FMTX__
131*d87708c5Sjoerg #define	PRIXFAST32	__UINT_FAST32_FMTX__
132*d87708c5Sjoerg #define	PRIXFAST64	__UINT_FAST64_FMTX__
133*d87708c5Sjoerg #define	PRIXMAX		__UINTMAX_FMTX__
134*d87708c5Sjoerg #define	PRIXPTR		__UINTPTR_FMTX__
135*d87708c5Sjoerg 
136*d87708c5Sjoerg /* fscanf macros for signed integers */
137*d87708c5Sjoerg 
138*d87708c5Sjoerg #define	SCNd8		__INT8_FMTd__
139*d87708c5Sjoerg #define	SCNd16		__INT16_FMTd__
140*d87708c5Sjoerg #define	SCNd32		__INT32_FMTd__
141*d87708c5Sjoerg #define	SCNd64		__INT64_FMTd__
142*d87708c5Sjoerg #define	SCNdLEAST8	__INT_LEAST8_FMTd__
143*d87708c5Sjoerg #define	SCNdLEAST16	__INT_LEAST16_FMTd__
144*d87708c5Sjoerg #define	SCNdLEAST32	__INT_LEAST32_FMTd__
145*d87708c5Sjoerg #define	SCNdLEAST64	__INT_LEAST64_FMTd__
146*d87708c5Sjoerg #define	SCNdFAST8	__INT_FAST8_FMTd__
147*d87708c5Sjoerg #define	SCNdFAST16	__INT_FAST16_FMTd__
148*d87708c5Sjoerg #define	SCNdFAST32	__INT_FAST32_FMTd__
149*d87708c5Sjoerg #define	SCNdFAST64	__INT_FAST64_FMTd__
150*d87708c5Sjoerg #define	SCNdMAX		__INTMAX_FMTd__
151*d87708c5Sjoerg #define	SCNdPTR		__INTPTR_FMTd__
152*d87708c5Sjoerg 
153*d87708c5Sjoerg #define	SCNi8		__INT8_FMTi__
154*d87708c5Sjoerg #define	SCNi16		__INT16_FMTi__
155*d87708c5Sjoerg #define	SCNi32		__INT32_FMTi__
156*d87708c5Sjoerg #define	SCNi64		__INT64_FMTi__
157*d87708c5Sjoerg #define	SCNiLEAST8	__INT_LEAST8_FMTi__
158*d87708c5Sjoerg #define	SCNiLEAST16	__INT_LEAST16_FMTi__
159*d87708c5Sjoerg #define	SCNiLEAST32	__INT_LEAST32_FMTi__
160*d87708c5Sjoerg #define	SCNiLEAST64	__INT_LEAST64_FMTi__
161*d87708c5Sjoerg #define	SCNiFAST8	__INT_FAST8_FMTi__
162*d87708c5Sjoerg #define	SCNiFAST16	__INT_FAST16_FMTi__
163*d87708c5Sjoerg #define	SCNiFAST32	__INT_FAST32_FMTi__
164*d87708c5Sjoerg #define	SCNiFAST64	__INT_FAST64_FMTi__
165*d87708c5Sjoerg #define	SCNiMAX		__INTMAX_FMTi__
166*d87708c5Sjoerg #define	SCNiPTR		__INTPTR_FMTi__
167*d87708c5Sjoerg 
168*d87708c5Sjoerg /* fscanf macros for unsigned integers */
169*d87708c5Sjoerg 
170*d87708c5Sjoerg #define	SCNo8		__UINT8_FMTo__
171*d87708c5Sjoerg #define	SCNo16		__UINT16_FMTo__
172*d87708c5Sjoerg #define	SCNo32		__UINT32_FMTo__
173*d87708c5Sjoerg #define	SCNo64		__UINT64_FMTo__
174*d87708c5Sjoerg #define	SCNoLEAST8	__UINT_LEAST8_FMTo__
175*d87708c5Sjoerg #define	SCNoLEAST16	__UINT_LEAST16_FMTo__
176*d87708c5Sjoerg #define	SCNoLEAST32	__UINT_LEAST32_FMTo__
177*d87708c5Sjoerg #define	SCNoLEAST64	__UINT_LEAST64_FMTo__
178*d87708c5Sjoerg #define	SCNoFAST8	__UINT_FAST8_FMTo__
179*d87708c5Sjoerg #define	SCNoFAST16	__UINT_FAST16_FMTo__
180*d87708c5Sjoerg #define	SCNoFAST32	__UINT_FAST32_FMTo__
181*d87708c5Sjoerg #define	SCNoFAST64	__UINT_FAST64_FMTo__
182*d87708c5Sjoerg #define	SCNoMAX		__UINTMAX_FMTo__
183*d87708c5Sjoerg #define	SCNoPTR		__UINTPTR_FMTo__
184*d87708c5Sjoerg 
185*d87708c5Sjoerg #define	SCNu8		__UINT8_FMTu__
186*d87708c5Sjoerg #define	SCNu16		__UINT16_FMTu__
187*d87708c5Sjoerg #define	SCNu32		__UINT32_FMTu__
188*d87708c5Sjoerg #define	SCNu64		__UINT64_FMTu__
189*d87708c5Sjoerg #define	SCNuLEAST8	__UINT_LEAST8_FMTu__
190*d87708c5Sjoerg #define	SCNuLEAST16	__UINT_LEAST16_FMTu__
191*d87708c5Sjoerg #define	SCNuLEAST32	__UINT_LEAST32_FMTu__
192*d87708c5Sjoerg #define	SCNuLEAST64	__UINT_LEAST64_FMTu__
193*d87708c5Sjoerg #define	SCNuFAST8	__UINT_FAST8_FMTu__
194*d87708c5Sjoerg #define	SCNuFAST16	__UINT_FAST16_FMTu__
195*d87708c5Sjoerg #define	SCNuFAST32	__UINT_FAST32_FMTu__
196*d87708c5Sjoerg #define	SCNuFAST64	__UINT_FAST64_FMTu__
197*d87708c5Sjoerg #define	SCNuMAX		__UINTMAX_FMTu__
198*d87708c5Sjoerg #define	SCNuPTR		__UINTPTR_FMTu__
199*d87708c5Sjoerg 
200*d87708c5Sjoerg #define	SCNx8		__UINT8_FMTx__
201*d87708c5Sjoerg #define	SCNx16		__UINT16_FMTx__
202*d87708c5Sjoerg #define	SCNx32		__UINT32_FMTx__
203*d87708c5Sjoerg #define	SCNx64		__UINT64_FMTx__
204*d87708c5Sjoerg #define	SCNxLEAST8	__UINT_LEAST8_FMTx__
205*d87708c5Sjoerg #define	SCNxLEAST16	__UINT_LEAST16_FMTx__
206*d87708c5Sjoerg #define	SCNxLEAST32	__UINT_LEAST32_FMTx__
207*d87708c5Sjoerg #define	SCNxLEAST64	__UINT_LEAST64_FMTx__
208*d87708c5Sjoerg #define	SCNxFAST8	__UINT_FAST8_FMTx__
209*d87708c5Sjoerg #define	SCNxFAST16	__UINT_FAST16_FMTx__
210*d87708c5Sjoerg #define	SCNxFAST32	__UINT_FAST32_FMTx__
211*d87708c5Sjoerg #define	SCNxFAST64	__UINT_FAST64_FMTx__
212*d87708c5Sjoerg #define	SCNxMAX		__UINTMAX_FMTx__
213*d87708c5Sjoerg #define	SCNxPTR		__UINTPTR_FMTx__
214*d87708c5Sjoerg 
215*d87708c5Sjoerg #define	SCNX8		__UINT8_FMTX__
216*d87708c5Sjoerg #define	SCNX16		__UINT16_FMTX__
217*d87708c5Sjoerg #define	SCNX32		__UINT32_FMTX__
218*d87708c5Sjoerg #define	SCNX64		__UINT64_FMTX__
219*d87708c5Sjoerg #define	SCNXLEAST8	__UINT_LEAST8_FMTX__
220*d87708c5Sjoerg #define	SCNXLEAST16	__UINT_LEAST16_FMTX__
221*d87708c5Sjoerg #define	SCNXLEAST32	__UINT_LEAST32_FMTX__
222*d87708c5Sjoerg #define	SCNXLEAST64	__UINT_LEAST64_FMTX__
223*d87708c5Sjoerg #define	SCNXFAST8	__UINT_FAST8_FMTX__
224*d87708c5Sjoerg #define	SCNXFAST16	__UINT_FAST16_FMTX__
225*d87708c5Sjoerg #define	SCNXFAST32	__UINT_FAST32_FMTX__
226*d87708c5Sjoerg #define	SCNXFAST64	__UINT_FAST64_FMTX__
227*d87708c5Sjoerg #define	SCNXMAX		__UINTMAX_FMTX__
228*d87708c5Sjoerg #define	SCNXPTR		__UINTPTR_FMTX__
229*d87708c5Sjoerg 
230*d87708c5Sjoerg #endif /* _SYS_COMMON_INT_FMTIO_H_ */
231