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