]>
Commit | Line | Data |
---|---|---|
320054e8 DG |
1 | #ifndef _STDINT_H |
2 | #define _STDINT_H | |
3 | ||
4 | #define __NEED_int8_t | |
5 | #define __NEED_int16_t | |
6 | #define __NEED_int32_t | |
7 | #define __NEED_int64_t | |
8 | ||
9 | #define __NEED_uint8_t | |
10 | #define __NEED_uint16_t | |
11 | #define __NEED_uint32_t | |
12 | #define __NEED_uint64_t | |
13 | ||
14 | #define __NEED_intptr_t | |
15 | #define __NEED_uintptr_t | |
16 | ||
17 | #define __NEED_intmax_t | |
18 | #define __NEED_uintmax_t | |
19 | ||
20 | #include <bits/alltypes.h> | |
21 | ||
22 | typedef int8_t int_fast8_t; | |
23 | typedef int64_t int_fast64_t; | |
24 | ||
25 | typedef int8_t int_least8_t; | |
26 | typedef int16_t int_least16_t; | |
27 | typedef int32_t int_least32_t; | |
28 | typedef int64_t int_least64_t; | |
29 | ||
30 | typedef uint8_t uint_fast8_t; | |
31 | typedef uint64_t uint_fast64_t; | |
32 | ||
33 | typedef uint8_t uint_least8_t; | |
34 | typedef uint16_t uint_least16_t; | |
35 | typedef uint32_t uint_least32_t; | |
36 | typedef uint64_t uint_least64_t; | |
37 | ||
38 | #define INT8_MIN (-1-0x7f) | |
39 | #define INT16_MIN (-1-0x7fff) | |
40 | #define INT32_MIN (-1-0x7fffffff) | |
41 | #define INT64_MIN (-1-0x7fffffffffffffff) | |
42 | ||
43 | #define INT8_MAX (0x7f) | |
44 | #define INT16_MAX (0x7fff) | |
45 | #define INT32_MAX (0x7fffffff) | |
46 | #define INT64_MAX (0x7fffffffffffffff) | |
47 | ||
48 | #define UINT8_MAX (0xff) | |
49 | #define UINT16_MAX (0xffff) | |
50 | #define UINT32_MAX (0xffffffffu) | |
51 | #define UINT64_MAX (0xffffffffffffffffu) | |
52 | ||
53 | #define INT_FAST8_MIN INT8_MIN | |
54 | #define INT_FAST64_MIN INT64_MIN | |
55 | ||
56 | #define INT_LEAST8_MIN INT8_MIN | |
57 | #define INT_LEAST16_MIN INT16_MIN | |
58 | #define INT_LEAST32_MIN INT32_MIN | |
59 | #define INT_LEAST64_MIN INT64_MIN | |
60 | ||
61 | #define INT_FAST8_MAX INT8_MAX | |
62 | #define INT_FAST64_MAX INT64_MAX | |
63 | ||
64 | #define INT_LEAST8_MAX INT8_MAX | |
65 | #define INT_LEAST16_MAX INT16_MAX | |
66 | #define INT_LEAST32_MAX INT32_MAX | |
67 | #define INT_LEAST64_MAX INT64_MAX | |
68 | ||
69 | #define UINT_FAST8_MAX UINT8_MAX | |
70 | #define UINT_FAST64_MAX UINT64_MAX | |
71 | ||
72 | #define UINT_LEAST8_MAX UINT8_MAX | |
73 | #define UINT_LEAST16_MAX UINT16_MAX | |
74 | #define UINT_LEAST32_MAX UINT32_MAX | |
75 | #define UINT_LEAST64_MAX UINT64_MAX | |
76 | ||
77 | #define INTMAX_MIN INT64_MIN | |
78 | #define INTMAX_MAX INT64_MAX | |
79 | #define UINTMAX_MAX UINT64_MAX | |
80 | ||
81 | #define WINT_MIN 0U | |
82 | #define WINT_MAX UINT32_MAX | |
83 | ||
84 | #if L'\0'-1 > 0 | |
85 | #define WCHAR_MAX (0xffffffffu+L'\0') | |
86 | #define WCHAR_MIN (0+L'\0') | |
87 | #else | |
88 | #define WCHAR_MAX (0x7fffffff+L'\0') | |
89 | #define WCHAR_MIN (-1-0x7fffffff+L'\0') | |
90 | #endif | |
91 | ||
92 | #define SIG_ATOMIC_MIN INT32_MIN | |
93 | #define SIG_ATOMIC_MAX INT32_MAX | |
94 | ||
95 | #include <bits/stdint.h> | |
96 | ||
97 | #define INT8_C(c) c | |
98 | #define INT16_C(c) c | |
99 | #define INT32_C(c) c | |
100 | ||
101 | #define UINT8_C(c) c | |
102 | #define UINT16_C(c) c | |
103 | #define UINT32_C(c) c ## U | |
104 | ||
105 | #if UINTPTR_MAX == UINT64_MAX | |
106 | #define INT64_C(c) c ## L | |
107 | #define UINT64_C(c) c ## UL | |
108 | #define INTMAX_C(c) c ## L | |
109 | #define UINTMAX_C(c) c ## UL | |
110 | #else | |
111 | #define INT64_C(c) c ## LL | |
112 | #define UINT64_C(c) c ## ULL | |
113 | #define INTMAX_C(c) c ## LL | |
114 | #define UINTMAX_C(c) c ## ULL | |
115 | #endif | |
116 | ||
117 | #endif |