]> git.proxmox.com Git - wasi-libc.git/blame - libc-top-half/musl/include/inttypes.h
Add a basics implementation of <inttypes.h>.
[wasi-libc.git] / libc-top-half / musl / include / inttypes.h
CommitLineData
320054e8
DG
1#ifndef _INTTYPES_H
2#define _INTTYPES_H
3
ad22a590 4#ifdef __wasilibc_unmodified_upstream /* Use alternate WASI libc headers */
320054e8
DG
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9#include <features.h>
10#include <stdint.h>
11
12#define __NEED_wchar_t
13#include <bits/alltypes.h>
14
15typedef struct { intmax_t quot, rem; } imaxdiv_t;
16
17intmax_t imaxabs(intmax_t);
18imaxdiv_t imaxdiv(intmax_t, intmax_t);
19
20intmax_t strtoimax(const char *__restrict, char **__restrict, int);
21uintmax_t strtoumax(const char *__restrict, char **__restrict, int);
22
23intmax_t wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);
24uintmax_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
ad22a590
DG
228#else
229#include <__header_inttypes.h>
230#endif
320054e8
DG
231
232#endif
233