]> git.proxmox.com Git - wasi-libc.git/blob - libc-top-half/musl/include/inttypes.h
Add a basics implementation of <inttypes.h>.
[wasi-libc.git] / libc-top-half / musl / include / inttypes.h
1 #ifndef _INTTYPES_H
2 #define _INTTYPES_H
3
4 #ifdef __wasilibc_unmodified_upstream /* Use alternate WASI libc headers */
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8
9 #include <features.h>
10 #include <stdint.h>
11
12 #define __NEED_wchar_t
13 #include <bits/alltypes.h>
14
15 typedef struct { intmax_t quot, rem; } imaxdiv_t;
16
17 intmax_t imaxabs(intmax_t);
18 imaxdiv_t imaxdiv(intmax_t, intmax_t);
19
20 intmax_t strtoimax(const char *__restrict, char **__restrict, int);
21 uintmax_t strtoumax(const char *__restrict, char **__restrict, int);
22
23 intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);
24 uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int);
25
26 #if UINTPTR_MAX == UINT64_MAX
27 #define __PRI64 "l"
28 #define __PRIPTR "l"
29 #else
30 #define __PRI64 "ll"
31 #define __PRIPTR ""
32 #endif
33
34 #define PRId8 "d"
35 #define PRId16 "d"
36 #define PRId32 "d"
37 #define PRId64 __PRI64 "d"
38
39 #define PRIdLEAST8 "d"
40 #define PRIdLEAST16 "d"
41 #define PRIdLEAST32 "d"
42 #define PRIdLEAST64 __PRI64 "d"
43
44 #define PRIdFAST8 "d"
45 #define PRIdFAST16 "d"
46 #define PRIdFAST32 "d"
47 #define PRIdFAST64 __PRI64 "d"
48
49 #define PRIi8 "i"
50 #define PRIi16 "i"
51 #define PRIi32 "i"
52 #define PRIi64 __PRI64 "i"
53
54 #define PRIiLEAST8 "i"
55 #define PRIiLEAST16 "i"
56 #define PRIiLEAST32 "i"
57 #define PRIiLEAST64 __PRI64 "i"
58
59 #define PRIiFAST8 "i"
60 #define PRIiFAST16 "i"
61 #define PRIiFAST32 "i"
62 #define PRIiFAST64 __PRI64 "i"
63
64 #define PRIo8 "o"
65 #define PRIo16 "o"
66 #define PRIo32 "o"
67 #define PRIo64 __PRI64 "o"
68
69 #define PRIoLEAST8 "o"
70 #define PRIoLEAST16 "o"
71 #define PRIoLEAST32 "o"
72 #define PRIoLEAST64 __PRI64 "o"
73
74 #define PRIoFAST8 "o"
75 #define PRIoFAST16 "o"
76 #define PRIoFAST32 "o"
77 #define PRIoFAST64 __PRI64 "o"
78
79 #define PRIu8 "u"
80 #define PRIu16 "u"
81 #define PRIu32 "u"
82 #define PRIu64 __PRI64 "u"
83
84 #define PRIuLEAST8 "u"
85 #define PRIuLEAST16 "u"
86 #define PRIuLEAST32 "u"
87 #define PRIuLEAST64 __PRI64 "u"
88
89 #define PRIuFAST8 "u"
90 #define PRIuFAST16 "u"
91 #define PRIuFAST32 "u"
92 #define PRIuFAST64 __PRI64 "u"
93
94 #define PRIx8 "x"
95 #define PRIx16 "x"
96 #define PRIx32 "x"
97 #define PRIx64 __PRI64 "x"
98
99 #define PRIxLEAST8 "x"
100 #define PRIxLEAST16 "x"
101 #define PRIxLEAST32 "x"
102 #define PRIxLEAST64 __PRI64 "x"
103
104 #define PRIxFAST8 "x"
105 #define PRIxFAST16 "x"
106 #define PRIxFAST32 "x"
107 #define PRIxFAST64 __PRI64 "x"
108
109 #define PRIX8 "X"
110 #define PRIX16 "X"
111 #define PRIX32 "X"
112 #define PRIX64 __PRI64 "X"
113
114 #define PRIXLEAST8 "X"
115 #define PRIXLEAST16 "X"
116 #define PRIXLEAST32 "X"
117 #define PRIXLEAST64 __PRI64 "X"
118
119 #define PRIXFAST8 "X"
120 #define PRIXFAST16 "X"
121 #define PRIXFAST32 "X"
122 #define PRIXFAST64 __PRI64 "X"
123
124 #define PRIdMAX __PRI64 "d"
125 #define PRIiMAX __PRI64 "i"
126 #define PRIoMAX __PRI64 "o"
127 #define PRIuMAX __PRI64 "u"
128 #define PRIxMAX __PRI64 "x"
129 #define PRIXMAX __PRI64 "X"
130
131 #define PRIdPTR __PRIPTR "d"
132 #define PRIiPTR __PRIPTR "i"
133 #define PRIoPTR __PRIPTR "o"
134 #define PRIuPTR __PRIPTR "u"
135 #define PRIxPTR __PRIPTR "x"
136 #define PRIXPTR __PRIPTR "X"
137
138 #define SCNd8 "hhd"
139 #define SCNd16 "hd"
140 #define SCNd32 "d"
141 #define SCNd64 __PRI64 "d"
142
143 #define SCNdLEAST8 "hhd"
144 #define SCNdLEAST16 "hd"
145 #define SCNdLEAST32 "d"
146 #define SCNdLEAST64 __PRI64 "d"
147
148 #define SCNdFAST8 "hhd"
149 #define SCNdFAST16 "d"
150 #define SCNdFAST32 "d"
151 #define SCNdFAST64 __PRI64 "d"
152
153 #define SCNi8 "hhi"
154 #define SCNi16 "hi"
155 #define SCNi32 "i"
156 #define SCNi64 __PRI64 "i"
157
158 #define SCNiLEAST8 "hhi"
159 #define SCNiLEAST16 "hi"
160 #define SCNiLEAST32 "i"
161 #define SCNiLEAST64 __PRI64 "i"
162
163 #define SCNiFAST8 "hhi"
164 #define SCNiFAST16 "i"
165 #define SCNiFAST32 "i"
166 #define SCNiFAST64 __PRI64 "i"
167
168 #define SCNu8 "hhu"
169 #define SCNu16 "hu"
170 #define SCNu32 "u"
171 #define SCNu64 __PRI64 "u"
172
173 #define SCNuLEAST8 "hhu"
174 #define SCNuLEAST16 "hu"
175 #define SCNuLEAST32 "u"
176 #define SCNuLEAST64 __PRI64 "u"
177
178 #define SCNuFAST8 "hhu"
179 #define SCNuFAST16 "u"
180 #define SCNuFAST32 "u"
181 #define SCNuFAST64 __PRI64 "u"
182
183 #define SCNo8 "hho"
184 #define SCNo16 "ho"
185 #define SCNo32 "o"
186 #define SCNo64 __PRI64 "o"
187
188 #define SCNoLEAST8 "hho"
189 #define SCNoLEAST16 "ho"
190 #define SCNoLEAST32 "o"
191 #define SCNoLEAST64 __PRI64 "o"
192
193 #define SCNoFAST8 "hho"
194 #define SCNoFAST16 "o"
195 #define SCNoFAST32 "o"
196 #define SCNoFAST64 __PRI64 "o"
197
198 #define SCNx8 "hhx"
199 #define SCNx16 "hx"
200 #define SCNx32 "x"
201 #define SCNx64 __PRI64 "x"
202
203 #define SCNxLEAST8 "hhx"
204 #define SCNxLEAST16 "hx"
205 #define SCNxLEAST32 "x"
206 #define SCNxLEAST64 __PRI64 "x"
207
208 #define SCNxFAST8 "hhx"
209 #define SCNxFAST16 "x"
210 #define SCNxFAST32 "x"
211 #define SCNxFAST64 __PRI64 "x"
212
213 #define SCNdMAX __PRI64 "d"
214 #define SCNiMAX __PRI64 "i"
215 #define SCNoMAX __PRI64 "o"
216 #define SCNuMAX __PRI64 "u"
217 #define SCNxMAX __PRI64 "x"
218
219 #define SCNdPTR __PRIPTR "d"
220 #define SCNiPTR __PRIPTR "i"
221 #define SCNoPTR __PRIPTR "o"
222 #define SCNuPTR __PRIPTR "u"
223 #define SCNxPTR __PRIPTR "x"
224
225 #ifdef __cplusplus
226 }
227 #endif
228 #else
229 #include <__header_inttypes.h>
230 #endif
231
232 #endif
233