41#if defined(ZYAN_NO_LIBC) || \
42 (defined(ZYAN_MSVC) && defined(ZYAN_KERNEL))
44# if defined(ZYAN_MSVC) || defined(ZYAN_ICC)
45 typedef unsigned __int8 ZyanU8;
46 typedef unsigned __int16 ZyanU16;
47 typedef unsigned __int32 ZyanU32;
48 typedef unsigned __int64 ZyanU64;
49 typedef signed __int8 ZyanI8;
50 typedef signed __int16 ZyanI16;
51 typedef signed __int32 ZyanI32;
52 typedef signed __int64 ZyanI64;
54 typedef ZyanU64 ZyanUSize;
55 typedef ZyanI64 ZyanISize;
56 typedef ZyanU64 ZyanUPointer;
57 typedef ZyanI64 ZyanIPointer;
59 typedef ZyanU32 ZyanUSize;
60 typedef ZyanI32 ZyanISize;
61 typedef ZyanU32 ZyanUPointer;
62 typedef ZyanI32 ZyanIPointer;
64# elif defined(ZYAN_GNUC)
66 typedef __UINT8_TYPE__ ZyanU8;
68 typedef unsigned char ZyanU8;
70# ifdef __UINT16_TYPE__
71 typedef __UINT16_TYPE__ ZyanU16;
73 typedef unsigned short int ZyanU16;
75# ifdef __UINT32_TYPE__
76 typedef __UINT32_TYPE__ ZyanU32;
78 typedef unsigned int ZyanU32;
80# ifdef __UINT64_TYPE__
81 typedef __UINT64_TYPE__ ZyanU64;
83# if defined(__x86_64__) && !defined(__ILP32__)
84 typedef unsigned long int ZyanU64;
86 typedef unsigned long long int ZyanU64;
90 typedef __INT8_TYPE__ ZyanI8;
92 typedef signed char ZyanI8;
95 typedef __INT16_TYPE__ ZyanI16;
97 typedef signed short int ZyanI16;
100 typedef __INT32_TYPE__ ZyanI32;
102 typedef signed int ZyanI32;
104# ifdef __INT64_TYPE__
105 typedef __INT64_TYPE__ ZyanI64;
107# if defined(__x86_64__) && !defined( __ILP32__)
108 typedef signed long int ZyanI64;
110 typedef signed long long int ZyanI64;
114 typedef __SIZE_TYPE__ ZyanUSize;
116 typedef long unsigned int ZyanUSize;
118# ifdef __PTRDIFF_TYPE__
119 typedef __PTRDIFF_TYPE__ ZyanISize;
121 typedef long int ZyanISize;
123# ifdef __UINTPTR_TYPE__
124 typedef __UINTPTR_TYPE__ ZyanUPointer;
126# if defined(__x86_64__) && !defined( __ILP32__)
127 typedef unsigned long int ZyanUPointer;
129 typedef unsigned int ZyanUPointer;
132# ifdef __INTPTR_TYPE__
133 typedef __INTPTR_TYPE__ ZyanIPointer;
135# if defined(__x86_64__) && !defined( __ILP32__)
136 typedef long int ZyanIPointer;
138 typedef int ZyanIPointer;
142# error "Unsupported compiler for no-libc mode."
145# if defined(ZYAN_MSVC)
146# define ZYAN_INT8_MIN (-127i8 - 1)
147# define ZYAN_INT16_MIN (-32767i16 - 1)
148# define ZYAN_INT32_MIN (-2147483647i32 - 1)
149# define ZYAN_INT64_MIN (-9223372036854775807i64 - 1)
150# define ZYAN_INT8_MAX 127i8
151# define ZYAN_INT16_MAX 32767i16
152# define ZYAN_INT32_MAX 2147483647i32
153# define ZYAN_INT64_MAX 9223372036854775807i64
154# define ZYAN_UINT8_MAX 0xffui8
155# define ZYAN_UINT16_MAX 0xffffui16
156# define ZYAN_UINT32_MAX 0xffffffffui32
157# define ZYAN_UINT64_MAX 0xffffffffffffffffui64
160# define ZYAN_INT8_MAX __INT8_MAX__
162# define ZYAN_INT8_MAX (127)
164# define ZYAN_INT8_MIN (-ZYAN_INT8_MAX - 1)
166# define ZYAN_INT16_MAX __INT16_MAX__
168# define ZYAN_INT16_MAX (32767)
170# define ZYAN_INT16_MIN (-ZYAN_INT16_MAX - 1)
172# define ZYAN_INT32_MAX __INT32_MAX__
174# define ZYAN_INT32_MAX (2147483647)
176# define ZYAN_INT32_MIN (-ZYAN_INT32_MAX - 1)
178# define ZYAN_INT64_MAX __INT64_MAX__
180# if defined(__x86_64__) && !defined( __ILP32__)
181# define ZYAN_INT64_MAX (9223372036854775807L)
183# define ZYAN_INT64_MAX (9223372036854775807LL)
186# define ZYAN_INT64_MIN (-ZYAN_INT64_MAX - 1)
188# define ZYAN_UINT8_MAX __UINT8_MAX__
190# define ZYAN_UINT8_MAX (255)
192# ifdef __UINT16_MAX__
193# define ZYAN_UINT16_MAX __UINT16_MAX__
195# define ZYAN_UINT16_MAX (65535)
197# ifdef __UINT32_MAX__
198# define ZYAN_UINT32_MAX __UINT32_MAX__
200# define ZYAN_UINT32_MAX (4294967295U)
202# ifdef __UINT64_MAX__
203# define ZYAN_UINT64_MAX __UINT64_MAX__
205# if defined(__x86_64__) && !defined( __ILP32__)
206# define ZYAN_UINT64_MAX (18446744073709551615UL)
208# define ZYAN_UINT64_MAX (18446744073709551615ULL)
216 typedef uint8_t ZyanU8;
217 typedef uint16_t ZyanU16;
218 typedef uint32_t ZyanU32;
219 typedef uint64_t ZyanU64;
220 typedef int8_t ZyanI8;
221 typedef int16_t ZyanI16;
222 typedef int32_t ZyanI32;
223 typedef int64_t ZyanI64;
224 typedef size_t ZyanUSize;
225 typedef ptrdiff_t ZyanISize;
226 typedef uintptr_t ZyanUPointer;
227 typedef intptr_t ZyanIPointer;
229# define ZYAN_INT8_MIN INT8_MIN
230# define ZYAN_INT16_MIN INT16_MIN
231# define ZYAN_INT32_MIN INT32_MIN
232# define ZYAN_INT64_MIN INT64_MIN
233# define ZYAN_INT8_MAX INT8_MAX
234# define ZYAN_INT16_MAX INT16_MAX
235# define ZYAN_INT32_MAX INT32_MAX
236# define ZYAN_INT64_MAX INT64_MAX
237# define ZYAN_UINT8_MAX UINT8_MAX
238# define ZYAN_UINT16_MAX UINT16_MAX
239# define ZYAN_UINT32_MAX UINT32_MAX
240# define ZYAN_UINT64_MAX UINT64_MAX
277#define ZYAN_NULL ((void*)0)
310#define ZYAN_TERNARY_FALSE (-1)
311#define ZYAN_TERNARY_UNKNOWN 0x00
312#define ZYAN_TERNARY_TRUE 0x01
#define ZYAN_STATIC_ASSERT(x)
Definition Defines.h:295
ZyanU8 ZyanBool
Definition Types.h:296
const void * ZyanConstVoidPointer
Definition Types.h:275
const char * ZyanConstCharPointer
Definition Types.h:334
char * ZyanCharPointer
Definition Types.h:327
ZyanI8 ZyanTernary
Definition Types.h:308
void * ZyanVoidPointer
Definition Types.h:270