aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/include/generic-netbsd/sys/common_int_fmtio.h
blob: 42b9a995bbf803af6f72d635abcb0788f0cc8270 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
/*	$NetBSD: common_int_fmtio.h,v 1.1 2014/07/25 21:43:13 joerg Exp $	*/

/*-
 * Copyright (c) 2014 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by Joerg Sonnenberger.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef _SYS_COMMON_INT_FMTIO_H_
#define _SYS_COMMON_INT_FMTIO_H_

#ifndef __INTPTR_FMTd__
#error Your compiler does not provide format string macros.
#endif

/*
 * 7.8.1 Macros for format specifiers
 */

/* fprintf macros for signed integers */
#define	PRId8		__INT8_FMTd__
#define	PRId16		__INT16_FMTd__
#define	PRId32		__INT32_FMTd__
#define	PRId64		__INT64_FMTd__
#define	PRIdLEAST8	__INT_LEAST8_FMTd__
#define	PRIdLEAST16	__INT_LEAST16_FMTd__
#define	PRIdLEAST32	__INT_LEAST32_FMTd__
#define	PRIdLEAST64	__INT_LEAST64_FMTd__
#define	PRIdFAST8	__INT_FAST8_FMTd__
#define	PRIdFAST16	__INT_FAST16_FMTd__
#define	PRIdFAST32	__INT_FAST32_FMTd__
#define	PRIdFAST64	__INT_FAST64_FMTd__
#define	PRIdMAX		__INTMAX_FMTd__
#define	PRIdPTR		__INTPTR_FMTd__

#define	PRIi8		__INT8_FMTi__
#define	PRIi16		__INT16_FMTi__
#define	PRIi32		__INT32_FMTi__
#define	PRIi64		__INT64_FMTi__
#define	PRIiLEAST8	__INT_LEAST8_FMTi__
#define	PRIiLEAST16	__INT_LEAST16_FMTi__
#define	PRIiLEAST32	__INT_LEAST32_FMTi__
#define	PRIiLEAST64	__INT_LEAST64_FMTi__
#define	PRIiFAST8	__INT_FAST8_FMTi__
#define	PRIiFAST16	__INT_FAST16_FMTi__
#define	PRIiFAST32	__INT_FAST32_FMTi__
#define	PRIiFAST64	__INT_FAST64_FMTi__
#define	PRIiMAX		__INTMAX_FMTi__
#define	PRIiPTR		__INTPTR_FMTi__

/* fprintf macros for unsigned integers */

#define	PRIo8		__UINT8_FMTo__
#define	PRIo16		__UINT16_FMTo__
#define	PRIo32		__UINT32_FMTo__
#define	PRIo64		__UINT64_FMTo__
#define	PRIoLEAST8	__UINT_LEAST8_FMTo__
#define	PRIoLEAST16	__UINT_LEAST16_FMTo__
#define	PRIoLEAST32	__UINT_LEAST32_FMTo__
#define	PRIoLEAST64	__UINT_LEAST64_FMTo__
#define	PRIoFAST8	__UINT_FAST8_FMTo__
#define	PRIoFAST16	__UINT_FAST16_FMTo__
#define	PRIoFAST32	__UINT_FAST32_FMTo__
#define	PRIoFAST64	__UINT_FAST64_FMTo__
#define	PRIoMAX		__UINTMAX_FMTo__
#define	PRIoPTR		__UINTPTR_FMTo__

#define	PRIu8		__UINT8_FMTu__
#define	PRIu16		__UINT16_FMTu__
#define	PRIu32		__UINT32_FMTu__
#define	PRIu64		__UINT64_FMTu__
#define	PRIuLEAST8	__UINT_LEAST8_FMTu__
#define	PRIuLEAST16	__UINT_LEAST16_FMTu__
#define	PRIuLEAST32	__UINT_LEAST32_FMTu__
#define	PRIuLEAST64	__UINT_LEAST64_FMTu__
#define	PRIuFAST8	__UINT_FAST8_FMTu__
#define	PRIuFAST16	__UINT_FAST16_FMTu__
#define	PRIuFAST32	__UINT_FAST32_FMTu__
#define	PRIuFAST64	__UINT_FAST64_FMTu__
#define	PRIuMAX		__UINTMAX_FMTu__
#define	PRIuPTR		__UINTPTR_FMTu__

#define	PRIx8		__UINT8_FMTx__
#define	PRIx16		__UINT16_FMTx__
#define	PRIx32		__UINT32_FMTx__
#define	PRIx64		__UINT64_FMTx__
#define	PRIxLEAST8	__UINT_LEAST8_FMTx__
#define	PRIxLEAST16	__UINT_LEAST16_FMTx__
#define	PRIxLEAST32	__UINT_LEAST32_FMTx__
#define	PRIxLEAST64	__UINT_LEAST64_FMTx__
#define	PRIxFAST8	__UINT_FAST8_FMTx__
#define	PRIxFAST16	__UINT_FAST16_FMTx__
#define	PRIxFAST32	__UINT_FAST32_FMTx__
#define	PRIxFAST64	__UINT_FAST64_FMTx__
#define	PRIxMAX		__UINTMAX_FMTx__
#define	PRIxPTR		__UINTPTR_FMTx__

#define	PRIX8		__UINT8_FMTX__
#define	PRIX16		__UINT16_FMTX__
#define	PRIX32		__UINT32_FMTX__
#define	PRIX64		__UINT64_FMTX__
#define	PRIXLEAST8	__UINT_LEAST8_FMTX__
#define	PRIXLEAST16	__UINT_LEAST16_FMTX__
#define	PRIXLEAST32	__UINT_LEAST32_FMTX__
#define	PRIXLEAST64	__UINT_LEAST64_FMTX__
#define	PRIXFAST8	__UINT_FAST8_FMTX__
#define	PRIXFAST16	__UINT_FAST16_FMTX__
#define	PRIXFAST32	__UINT_FAST32_FMTX__
#define	PRIXFAST64	__UINT_FAST64_FMTX__
#define	PRIXMAX		__UINTMAX_FMTX__
#define	PRIXPTR		__UINTPTR_FMTX__

/* fscanf macros for signed integers */

#define	SCNd8		__INT8_FMTd__
#define	SCNd16		__INT16_FMTd__
#define	SCNd32		__INT32_FMTd__
#define	SCNd64		__INT64_FMTd__
#define	SCNdLEAST8	__INT_LEAST8_FMTd__
#define	SCNdLEAST16	__INT_LEAST16_FMTd__
#define	SCNdLEAST32	__INT_LEAST32_FMTd__
#define	SCNdLEAST64	__INT_LEAST64_FMTd__
#define	SCNdFAST8	__INT_FAST8_FMTd__
#define	SCNdFAST16	__INT_FAST16_FMTd__
#define	SCNdFAST32	__INT_FAST32_FMTd__
#define	SCNdFAST64	__INT_FAST64_FMTd__
#define	SCNdMAX		__INTMAX_FMTd__
#define	SCNdPTR		__INTPTR_FMTd__

#define	SCNi8		__INT8_FMTi__
#define	SCNi16		__INT16_FMTi__
#define	SCNi32		__INT32_FMTi__
#define	SCNi64		__INT64_FMTi__
#define	SCNiLEAST8	__INT_LEAST8_FMTi__
#define	SCNiLEAST16	__INT_LEAST16_FMTi__
#define	SCNiLEAST32	__INT_LEAST32_FMTi__
#define	SCNiLEAST64	__INT_LEAST64_FMTi__
#define	SCNiFAST8	__INT_FAST8_FMTi__
#define	SCNiFAST16	__INT_FAST16_FMTi__
#define	SCNiFAST32	__INT_FAST32_FMTi__
#define	SCNiFAST64	__INT_FAST64_FMTi__
#define	SCNiMAX		__INTMAX_FMTi__
#define	SCNiPTR		__INTPTR_FMTi__

/* fscanf macros for unsigned integers */

#define	SCNo8		__UINT8_FMTo__
#define	SCNo16		__UINT16_FMTo__
#define	SCNo32		__UINT32_FMTo__
#define	SCNo64		__UINT64_FMTo__
#define	SCNoLEAST8	__UINT_LEAST8_FMTo__
#define	SCNoLEAST16	__UINT_LEAST16_FMTo__
#define	SCNoLEAST32	__UINT_LEAST32_FMTo__
#define	SCNoLEAST64	__UINT_LEAST64_FMTo__
#define	SCNoFAST8	__UINT_FAST8_FMTo__
#define	SCNoFAST16	__UINT_FAST16_FMTo__
#define	SCNoFAST32	__UINT_FAST32_FMTo__
#define	SCNoFAST64	__UINT_FAST64_FMTo__
#define	SCNoMAX		__UINTMAX_FMTo__
#define	SCNoPTR		__UINTPTR_FMTo__

#define	SCNu8		__UINT8_FMTu__
#define	SCNu16		__UINT16_FMTu__
#define	SCNu32		__UINT32_FMTu__
#define	SCNu64		__UINT64_FMTu__
#define	SCNuLEAST8	__UINT_LEAST8_FMTu__
#define	SCNuLEAST16	__UINT_LEAST16_FMTu__
#define	SCNuLEAST32	__UINT_LEAST32_FMTu__
#define	SCNuLEAST64	__UINT_LEAST64_FMTu__
#define	SCNuFAST8	__UINT_FAST8_FMTu__
#define	SCNuFAST16	__UINT_FAST16_FMTu__
#define	SCNuFAST32	__UINT_FAST32_FMTu__
#define	SCNuFAST64	__UINT_FAST64_FMTu__
#define	SCNuMAX		__UINTMAX_FMTu__
#define	SCNuPTR		__UINTPTR_FMTu__

#define	SCNx8		__UINT8_FMTx__
#define	SCNx16		__UINT16_FMTx__
#define	SCNx32		__UINT32_FMTx__
#define	SCNx64		__UINT64_FMTx__
#define	SCNxLEAST8	__UINT_LEAST8_FMTx__
#define	SCNxLEAST16	__UINT_LEAST16_FMTx__
#define	SCNxLEAST32	__UINT_LEAST32_FMTx__
#define	SCNxLEAST64	__UINT_LEAST64_FMTx__
#define	SCNxFAST8	__UINT_FAST8_FMTx__
#define	SCNxFAST16	__UINT_FAST16_FMTx__
#define	SCNxFAST32	__UINT_FAST32_FMTx__
#define	SCNxFAST64	__UINT_FAST64_FMTx__
#define	SCNxMAX		__UINTMAX_FMTx__
#define	SCNxPTR		__UINTPTR_FMTx__

#define	SCNX8		__UINT8_FMTX__
#define	SCNX16		__UINT16_FMTX__
#define	SCNX32		__UINT32_FMTX__
#define	SCNX64		__UINT64_FMTX__
#define	SCNXLEAST8	__UINT_LEAST8_FMTX__
#define	SCNXLEAST16	__UINT_LEAST16_FMTX__
#define	SCNXLEAST32	__UINT_LEAST32_FMTX__
#define	SCNXLEAST64	__UINT_LEAST64_FMTX__
#define	SCNXFAST8	__UINT_FAST8_FMTX__
#define	SCNXFAST16	__UINT_FAST16_FMTX__
#define	SCNXFAST32	__UINT_FAST32_FMTX__
#define	SCNXFAST64	__UINT_FAST64_FMTX__
#define	SCNXMAX		__UINTMAX_FMTX__
#define	SCNXPTR		__UINTPTR_FMTX__

#endif /* _SYS_COMMON_INT_FMTIO_H_ */