source: trunk/sys/dietlibc/include/inttypes.h @ 1

Last change on this file since 1 was 1, checked in by alain, 5 years ago

First import

File size: 6.2 KB
Line 
1#ifndef _INTTYPES_H
2#define _INTTYPES_H
3
4#include <endian.h>
5
6# if __WORDSIZE == 64
7#  define __PRI64_PREFIX        "l"
8#  define __PRIPTR_PREFIX       "l"
9# else
10#  define __PRI64_PREFIX        "ll"
11#  define __PRIPTR_PREFIX
12# endif
13
14/* Macros for printing format specifiers.  */
15
16/* Decimal notation.  */
17# define PRId8          "d"
18# define PRId16         "d"
19# define PRId32         "d"
20# define PRId64         __PRI64_PREFIX "d"
21
22# define PRIdLEAST8     "d"
23# define PRIdLEAST16    "d"
24# define PRIdLEAST32    "d"
25# define PRIdLEAST64    __PRI64_PREFIX "d"
26
27# define PRIdFAST8      "d"
28# define PRIdFAST16     "d"
29# define PRIdFAST32     "d"
30# define PRIdFAST64     __PRI64_PREFIX "d"
31
32
33# define PRIi8          "i"
34# define PRIi16         "i"
35# define PRIi32         "i"
36# define PRIi64         __PRI64_PREFIX "i"
37
38# define PRIiLEAST8     "i"
39# define PRIiLEAST16    "i"
40# define PRIiLEAST32    "i"
41# define PRIiLEAST64    __PRI64_PREFIX "i"
42
43# define PRIiFAST8      "i"
44# define PRIiFAST16     "i"
45# define PRIiFAST32     "i"
46# define PRIiFAST64     __PRI64_PREFIX "i"
47
48/* Octal notation.  */
49# define PRIo8          "o"
50# define PRIo16         "o"
51# define PRIo32         "o"
52# define PRIo64         __PRI64_PREFIX "o"
53
54# define PRIoLEAST8     "o"
55# define PRIoLEAST16    "o"
56# define PRIoLEAST32    "o"
57# define PRIoLEAST64    __PRI64_PREFIX "o"
58
59# define PRIoFAST8      "o"
60# define PRIoFAST16     "o"
61# define PRIoFAST32     "o"
62# define PRIoFAST64     __PRI64_PREFIX "o"
63
64/* Unsigned integers.  */
65# define PRIu8          "u"
66# define PRIu16         "u"
67# define PRIu32         "u"
68# define PRIu64         __PRI64_PREFIX "u"
69
70# define PRIuLEAST8     "u"
71# define PRIuLEAST16    "u"
72# define PRIuLEAST32    "u"
73# define PRIuLEAST64    __PRI64_PREFIX "u"
74
75# define PRIuFAST8      "u"
76# define PRIuFAST16     "u"
77# define PRIuFAST32     "u"
78# define PRIuFAST64     __PRI64_PREFIX "u"
79
80/* lowercase hexadecimal notation.  */
81# define PRIx8          "x"
82# define PRIx16         "x"
83# define PRIx32         "x"
84# define PRIx64         __PRI64_PREFIX "x"
85
86# define PRIxLEAST8     "x"
87# define PRIxLEAST16    "x"
88# define PRIxLEAST32    "x"
89# define PRIxLEAST64    __PRI64_PREFIX "x"
90
91# define PRIxFAST8      "x"
92# define PRIxFAST16     "x"
93# define PRIxFAST32     "x"
94# define PRIxFAST64     __PRI64_PREFIX "x"
95
96/* UPPERCASE hexadecimal notation.  */
97# define PRIX8          "X"
98# define PRIX16         "X"
99# define PRIX32         "X"
100# define PRIX64         __PRI64_PREFIX "X"
101
102# define PRIXLEAST8     "X"
103# define PRIXLEAST16    "X"
104# define PRIXLEAST32    "X"
105# define PRIXLEAST64    __PRI64_PREFIX "X"
106
107# define PRIXFAST8      "X"
108# define PRIXFAST16     "X"
109# define PRIXFAST32     "X"
110# define PRIXFAST64     __PRI64_PREFIX "X"
111
112
113/* Macros for printing `intmax_t' and `uintmax_t'.  */
114# define PRIdMAX        __PRI64_PREFIX "d"
115# define PRIiMAX        __PRI64_PREFIX "i"
116# define PRIoMAX        __PRI64_PREFIX "o"
117# define PRIuMAX        __PRI64_PREFIX "u"
118# define PRIxMAX        __PRI64_PREFIX "x"
119# define PRIXMAX        __PRI64_PREFIX "X"
120
121
122/* Macros for printing `intptr_t' and `uintptr_t'.  */
123# define PRIdPTR        __PRIPTR_PREFIX "d"
124# define PRIiPTR        __PRIPTR_PREFIX "i"
125# define PRIoPTR        __PRIPTR_PREFIX "o"
126# define PRIuPTR        __PRIPTR_PREFIX "u"
127# define PRIxPTR        __PRIPTR_PREFIX "x"
128# define PRIXPTR        __PRIPTR_PREFIX "X"
129
130
131/* Macros for scanning format specifiers.  */
132
133/* Signed decimal notation.  */
134# define SCNd8          "hhd"
135# define SCNd16         "hd"
136# define SCNd32         "d"
137# define SCNd64         __PRI64_PREFIX "d"
138
139# define SCNdLEAST8     "hhd"
140# define SCNdLEAST16    "hd"
141# define SCNdLEAST32    "d"
142# define SCNdLEAST64    __PRI64_PREFIX "d"
143
144# define SCNdFAST8      "hhd"
145# define SCNdFAST16     __PRIPTR_PREFIX "d"
146# define SCNdFAST32     __PRIPTR_PREFIX "d"
147# define SCNdFAST64     __PRI64_PREFIX "d"
148
149/* Signed decimal notation.  */
150# define SCNi8          "hhi"
151# define SCNi16         "hi"
152# define SCNi32         "i"
153# define SCNi64         __PRI64_PREFIX "i"
154
155# define SCNiLEAST8     "hhi"
156# define SCNiLEAST16    "hi"
157# define SCNiLEAST32    "i"
158# define SCNiLEAST64    __PRI64_PREFIX "i"
159
160# define SCNiFAST8      "hhi"
161# define SCNiFAST16     __PRIPTR_PREFIX "i"
162# define SCNiFAST32     __PRIPTR_PREFIX "i"
163# define SCNiFAST64     __PRI64_PREFIX "i"
164
165/* Unsigned decimal notation.  */
166# define SCNu8          "hhu"
167# define SCNu16         "hu"
168# define SCNu32         "u"
169# define SCNu64         __PRI64_PREFIX "u"
170
171# define SCNuLEAST8     "hhu"
172# define SCNuLEAST16    "hu"
173# define SCNuLEAST32    "u"
174# define SCNuLEAST64    __PRI64_PREFIX "u"
175
176# define SCNuFAST8      "hhu"
177# define SCNuFAST16     __PRIPTR_PREFIX "u"
178# define SCNuFAST32     __PRIPTR_PREFIX "u"
179# define SCNuFAST64     __PRI64_PREFIX "u"
180
181/* Octal notation.  */
182# define SCNo8          "hho"
183# define SCNo16         "ho"
184# define SCNo32         "o"
185# define SCNo64         __PRI64_PREFIX "o"
186
187# define SCNoLEAST8     "hho"
188# define SCNoLEAST16    "ho"
189# define SCNoLEAST32    "o"
190# define SCNoLEAST64    __PRI64_PREFIX "o"
191
192# define SCNoFAST8      "hho"
193# define SCNoFAST16     __PRIPTR_PREFIX "o"
194# define SCNoFAST32     __PRIPTR_PREFIX "o"
195# define SCNoFAST64     __PRI64_PREFIX "o"
196
197/* Hexadecimal notation.  */
198# define SCNx8          "hhx"
199# define SCNx16         "hx"
200# define SCNx32         "x"
201# define SCNx64         __PRI64_PREFIX "x"
202
203# define SCNxLEAST8     "hhx"
204# define SCNxLEAST16    "hx"
205# define SCNxLEAST32    "x"
206# define SCNxLEAST64    __PRI64_PREFIX "x"
207
208# define SCNxFAST8      "hhx"
209# define SCNxFAST16     __PRIPTR_PREFIX "x"
210# define SCNxFAST32     __PRIPTR_PREFIX "x"
211# define SCNxFAST64     __PRI64_PREFIX "x"
212
213
214/* Macros for scanning `intmax_t' and `uintmax_t'.  */
215# define SCNdMAX        __PRI64_PREFIX "d"
216# define SCNiMAX        __PRI64_PREFIX "i"
217# define SCNoMAX        __PRI64_PREFIX "o"
218# define SCNuMAX        __PRI64_PREFIX "u"
219# define SCNxMAX        __PRI64_PREFIX "x"
220
221/* Macros for scanning `intptr_t' and `uintptr_t'.  */
222# define SCNdPTR        __PRIPTR_PREFIX "d"
223# define SCNiPTR        __PRIPTR_PREFIX "i"
224# define SCNoPTR        __PRIPTR_PREFIX "o"
225# define SCNuPTR        __PRIPTR_PREFIX "u"
226# define SCNxPTR        __PRIPTR_PREFIX "x"
227
228//typedef signed char int8_t;
229#if defined(__SHRT_MAX__) && (__SHRT_MAX__ + 0 != 32767)
230typedef int int16_t __attribute__((__mode__(__HI__)));
231#endif
232
233#if defined(__INT_MAX__) && (__INT_MAX__ + 0 != 2147483647)
234typedef int int32_t __attribute__((__mode__(__SI__)));
235#endif
236
237#if defined(__SHRT_MAX__) && (__SHRT_MAX__ + 0 != 32767)
238typedef unsigned int uint16_t __attribute__((__mode__(__HI__)));
239#endif
240
241#if defined(__INT_MAX__) && (__INT_MAX__ + 0 != 2147483647)
242typedef unsigned int uint32_t __attribute__((__mode__(__SI__)));
243#endif
244
245
246#if __WORDSIZE == 64
247typedef signed long int64_t;
248typedef unsigned long uint64_t;
249typedef signed long int intmax_t;
250typedef unsigned long int uintmax_t;
251#else
252typedef signed long long int intmax_t;
253typedef unsigned long long int uintmax_t;
254#endif
255
256intmax_t strtoimax (const char *nptr, char **endptr, int base);
257uintmax_t strtoumax (const char *nptr, char **endptr, int base);
258
259
260#endif
Note: See TracBrowser for help on using the repository browser.