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