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