32 #ifndef ZYCORE_TYPES_H
33 #define ZYCORE_TYPES_H
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)
65 typedef __UINT8_TYPE__ ZyanU8;
66 typedef __UINT16_TYPE__ ZyanU16;
67 typedef __UINT32_TYPE__ ZyanU32;
68 typedef __UINT64_TYPE__ ZyanU64;
69 typedef __INT8_TYPE__ ZyanI8;
70 typedef __INT16_TYPE__ ZyanI16;
71 typedef __INT32_TYPE__ ZyanI32;
72 typedef __INT64_TYPE__ ZyanI64;
73 typedef __SIZE_TYPE__ ZyanUSize;
74 typedef __PTRDIFF_TYPE__ ZyanISize;
75 typedef __UINTPTR_TYPE__ ZyanUPointer;
76 typedef __INTPTR_TYPE__ ZyanIPointer;
78 # error "Unsupported compiler for no-libc mode."
81 # if defined(ZYAN_MSVC)
82 # define ZYAN_INT8_MIN (-127i8 - 1)
83 # define ZYAN_INT16_MIN (-32767i16 - 1)
84 # define ZYAN_INT32_MIN (-2147483647i32 - 1)
85 # define ZYAN_INT64_MIN (-9223372036854775807i64 - 1)
86 # define ZYAN_INT8_MAX 127i8
87 # define ZYAN_INT16_MAX 32767i16
88 # define ZYAN_INT32_MAX 2147483647i32
89 # define ZYAN_INT64_MAX 9223372036854775807i64
90 # define ZYAN_UINT8_MAX 0xffui8
91 # define ZYAN_UINT16_MAX 0xffffui16
92 # define ZYAN_UINT32_MAX 0xffffffffui32
93 # define ZYAN_UINT64_MAX 0xffffffffffffffffui64
95 # define ZYAN_INT8_MAX __INT8_MAX__
96 # define ZYAN_INT8_MIN (-ZYAN_INT8_MAX - 1)
97 # define ZYAN_INT16_MAX __INT16_MAX__
98 # define ZYAN_INT16_MIN (-ZYAN_INT16_MAX - 1)
99 # define ZYAN_INT32_MAX __INT32_MAX__
100 # define ZYAN_INT32_MIN (-ZYAN_INT32_MAX - 1)
101 # define ZYAN_INT64_MAX __INT64_MAX__
102 # define ZYAN_INT64_MIN (-ZYAN_INT64_MAX - 1)
103 # define ZYAN_UINT8_MAX __UINT8_MAX__
104 # define ZYAN_UINT16_MAX __UINT16_MAX__
105 # define ZYAN_UINT32_MAX __UINT32_MAX__
106 # define ZYAN_UINT64_MAX __UINT64_MAX__
112 typedef uint8_t ZyanU8;
113 typedef uint16_t ZyanU16;
114 typedef uint32_t ZyanU32;
115 typedef uint64_t ZyanU64;
116 typedef int8_t ZyanI8;
117 typedef int16_t ZyanI16;
118 typedef int32_t ZyanI32;
119 typedef int64_t ZyanI64;
120 typedef size_t ZyanUSize;
121 typedef ptrdiff_t ZyanISize;
122 typedef uintptr_t ZyanUPointer;
123 typedef intptr_t ZyanIPointer;
125 # define ZYAN_INT8_MIN INT8_MIN
126 # define ZYAN_INT16_MIN INT16_MIN
127 # define ZYAN_INT32_MIN INT32_MIN
128 # define ZYAN_INT64_MIN INT64_MIN
129 # define ZYAN_INT8_MAX INT8_MAX
130 # define ZYAN_INT16_MAX INT16_MAX
131 # define ZYAN_INT32_MAX INT32_MAX
132 # define ZYAN_INT64_MAX INT64_MAX
133 # define ZYAN_UINT8_MAX UINT8_MAX
134 # define ZYAN_UINT16_MAX UINT16_MAX
135 # define ZYAN_UINT32_MAX UINT32_MAX
136 # define ZYAN_UINT64_MAX UINT64_MAX
173 #define ZYAN_NULL ((void*)0)
206 #define ZYAN_TERNARY_FALSE (-1)
207 #define ZYAN_TERNARY_UNKNOWN 0x00
208 #define ZYAN_TERNARY_TRUE 0x01
#define ZYAN_STATIC_ASSERT(x)
Definition: Defines.h:281
ZyanU8 ZyanBool
Definition: Types.h:192
const void * ZyanConstVoidPointer
Definition: Types.h:171
const char * ZyanConstCharPointer
Definition: Types.h:230
char * ZyanCharPointer
Definition: Types.h:223
ZyanI8 ZyanTernary
Definition: Types.h:204
void * ZyanVoidPointer
Definition: Types.h:166