XenevaOS
Loading...
Searching...
No Matches
stdint.h
Go to the documentation of this file.
1
30#ifndef __STDINT_H__
31#define __STDINT_H__
32
33#include <size_t.h>
34
35#define __need_wint_t
36#define __need_wchar_t
37
38/* 7.18.1.1 Exact-width integer types */
39typedef signed char int8_t;
40typedef unsigned char uint8_t;
41typedef short int16_t;
42typedef unsigned short uint16_t;
43typedef int int32_t;
44typedef unsigned uint32_t;
45typedef long long int64_t;
46typedef unsigned long long uint64_t;
47
48typedef uint8_t uint8;
52typedef int8_t int8;
53typedef int16_t int16;
54typedef int32_t int32;
55typedef int64_t int64;
56
57/* 7.18.1.2 Minimum-width integer types */
58typedef signed char int_least8_t;
59typedef unsigned char uint_least8_t;
60typedef short int_least16_t;
61typedef unsigned short uint_least16_t;
62typedef int int_least32_t;
63typedef unsigned uint_least32_t;
64typedef long long int_least64_t;
65typedef unsigned long long uint_least64_t;
66
67/* 7.18.1.3 Fastest minimum-width integer types
68* Not actually guaranteed to be fastest for all purposes
69* Here we use the exact-width types for 8 and 16-bit ints.
70*/
71typedef char int_fast8_t;
72typedef unsigned char uint_fast8_t;
73typedef short int_fast16_t;
74typedef unsigned short uint_fast16_t;
75typedef int int_fast32_t;
76typedef unsigned int uint_fast32_t;
77typedef long long int_fast64_t;
78typedef unsigned long long uint_fast64_t;
79
80/* 7.18.1.4 Integer types capable of holding object pointers */
81#if defined(ARCH_ARM64) || defined(__aarch64__) || defined(ARCH_X64) || defined(__x86_64__)
82typedef long long intptr_t;
83typedef unsigned long long uintptr_t;
84#else
85typedef int intptr_t;
86typedef unsigned int uintptr_t;
87#endif
88
89/* 7.18.1.5 Greatest-width integer types */
90typedef long long intmax_t;
91typedef unsigned long long uintmax_t;
92
93/* 7.18.2 Limits of specified-width integer types */
94#if defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
95
96/* 7.18.2.1 Limits of exact-width integer types */
97#define INT8_MIN (-128)
98#define INT16_MIN (-32768)
99#define INT32_MIN (-2147483647 - 1)
100#define INT64_MIN (-9223372036854775807LL - 1)
101
102#define INT8_MAX 127
103#define INT16_MAX 32767
104#define INT32_MAX 2147483647
105#define INT64_MAX 9223372036854775807LL
106
107#define UINT8_MAX 0xff /* 255U */
108#define UINT16_MAX 0xffff /* 65535U */
109#define UINT32_MAX 0xffffffff /* 4294967295U */
110#define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */
111
112/* 7.18.2.2 Limits of minimum-width integer types */
113#define INT_LEAST8_MIN INT8_MIN
114#define INT_LEAST16_MIN INT16_MIN
115#define INT_LEAST32_MIN INT32_MIN
116#define INT_LEAST64_MIN INT64_MIN
117
118#define INT_LEAST8_MAX INT8_MAX
119#define INT_LEAST16_MAX INT16_MAX
120#define INT_LEAST32_MAX INT32_MAX
121#define INT_LEAST64_MAX INT64_MAX
122
123#define UINT_LEAST8_MAX UINT8_MAX
124#define UINT_LEAST16_MAX UINT16_MAX
125#define UINT_LEAST32_MAX UINT32_MAX
126#define UINT_LEAST64_MAX UINT64_MAX
127
128/* 7.18.2.3 Limits of fastest minimum-width integer types */
129#define INT_FAST8_MIN INT8_MIN
130#define INT_FAST16_MIN INT16_MIN
131#define INT_FAST32_MIN INT32_MIN
132#define INT_FAST64_MIN INT64_MIN
133
134#define INT_FAST8_MAX INT8_MAX
135#define INT_FAST16_MAX INT16_MAX
136#define INT_FAST32_MAX INT32_MAX
137#define INT_FAST64_MAX INT64_MAX
138
139#define UINT_FAST8_MAX UINT8_MAX
140#define UINT_FAST16_MAX UINT16_MAX
141#define UINT_FAST32_MAX UINT32_MAX
142#define UINT_FAST64_MAX UINT64_MAX
143
144/* 7.18.2.4 Limits of integer types capable of holding
145object pointers */
146#define INTPTR_MIN INT32_MIN
147#define INTPTR_MAX INT32_MAX
148#define UINTPTR_MAX UINT32_MAX
149
150/* 7.18.2.5 Limits of greatest-width integer types */
151#define INTMAX_MIN INT64_MIN
152#define INTMAX_MAX INT64_MAX
153#define UINTMAX_MAX UINT64_MAX
154
155/* 7.18.3 Limits of other integer types */
156#define PTRDIFF_MIN INT32_MIN
157#define PTRDIFF_MAX INT32_MAX
158
159#define SIG_ATOMIC_MIN INT32_MIN
160#define SIG_ATOMIC_MAX INT32_MAX
161
162#define SIZE_MAX 0xFFFFF //UINT32_MAX
163
164#ifndef WCHAR_MIN /* also in wchar.h */
165#define WCHAR_MIN 0
166#define WCHAR_MAX ((wchar_t) - 1) /* UINT16_MAX */
167#endif
168
169/*
170* wint_t is unsigned short for compatibility with MS runtime
171*/
172#define WINT_MIN 0
173#define WINT_MAX ((wint_t) - 1) /* UINT16_MAX */
174
175#endif /* !defined ( __cplusplus) || defined __STDC_LIMIT_MACROS */
176
177/* 7.18.4 Macros for integer constants */
178#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
179
180/* 7.18.4.1 Macros for minimum-width integer constants */
181
182#define INT8_C(val) ((int8_t)+(val))
183#define UINT8_C(val) ((uint8_t)+(val##U))
184#define INT16_C(val) ((int16_t)+(val))
185#define UINT16_C(val) ((uint16_t)+(val##U))
186
187#define INT32_C(val) val##L
188#define UINT32_C(val) val##UL
189#define INT64_C(val) val##LL
190#define UINT64_C(val) val##ULL
191
192/* 7.18.4.2 Macros for greatest-width integer constants */
193#define INTMAX_C(val) INT64_C(val)
194#define UINTMAX_C(val) UINT64_C(val)
195
196#endif /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */
197
198#ifdef __cplusplus
199extern "C++" {
200template <class T, class U> intptr_t raw_diff(T* p1, U* p2) {
201 return (intptr_t)p1 - (intptr_t)p2;
202}
203template <class T, class U> T raw_offset(U p1, const intptr_t offset) {
204 return (T)((size_t)p1 + offset);
205}
206template <class T, class U> T mem_after(U* p1) {
207 return (T)(&p1[1]);
208}
209}
210#else
211#define RAW_OFFSET(type, x, offset) (type)((size_t)x + offset)
212#endif
213
214#define DIV_ROUND_UP(x, y) ((x + y - 1) / y)
215
216#define ALIGN_UP(x, y) (DIV_ROUND_UP(x, y) * y)
217
218#define NULL 0
219
220#define bool char
221#endif
long long int_least64_t
Definition stdint.h:73
int intptr_t
Definition stdint.h:93
uint64_t size_t
Definition stdint.h:104
unsigned short uint16_t
Definition stdint.h:50
unsigned char uint_fast8_t
Definition stdint.h:81
unsigned uint32_t
Definition stdint.h:52
int int32_t
Definition stdint.h:51
uint8_t uint8
Definition stdint.h:56
unsigned int uint_fast32_t
Definition stdint.h:85
int int_least32_t
Definition stdint.h:71
unsigned int uintptr_t
Definition stdint.h:94
unsigned long long uintmax_t
Definition stdint.h:99
int64_t int64
Definition stdint.h:63
short int_least16_t
Definition stdint.h:69
long long int_fast64_t
Definition stdint.h:86
long long int64_t
Definition stdint.h:53
int int_fast32_t
Definition stdint.h:84
unsigned long long uint_least64_t
Definition stdint.h:74
int16_t int16
Definition stdint.h:61
short int16_t
Definition stdint.h:49
int8_t int8
Definition stdint.h:60
unsigned long long uint64_t
Definition stdint.h:54
unsigned uint_least32_t
Definition stdint.h:72
unsigned short uint_fast16_t
Definition stdint.h:83
unsigned char uint_least8_t
Definition stdint.h:68
unsigned long long uint_fast64_t
Definition stdint.h:87
int32_t int32
Definition stdint.h:62
unsigned char uint8_t
Definition stdint.h:48
uint64_t uint64
Definition stdint.h:59
uint16_t uint16
Definition stdint.h:57
long long intmax_t
Definition stdint.h:98
uint32_t uint32
Definition stdint.h:58
unsigned short uint_least16_t
Definition stdint.h:70
signed char int_least8_t
Definition stdint.h:67
signed char int8_t
Definition stdint.h:47
char int_fast8_t
Definition stdint.h:80
short int_fast16_t
Definition stdint.h:82
std::ptrdiff_t raw_diff(T p1, T p2)
Definition Common.hpp:26
T raw_offset(U p1, std::ptrdiff_t offset)
Definition Common.hpp:41
T mem_after(T p1)
Definition Common.hpp:58
int int32_t
Definition acefiex.h:160
unsigned int uint32_t
Definition acefiex.h:163
COMPILER_DEPENDENT_INT64 int64_t
Definition acefiex.h:164
short int int16_t
Definition acefiex.h:159
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
signed char int8_t
Definition acefiex.h:158