blob: f9119f1855ad326fa2ee03ebefa887d5aa791f09 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
#pragma once
typedef unsigned short Uint16;
/* ***** Platform-ness ***** */
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32_LEAN_AND_MEAN)
# define IEF_PLATFORM_WIN32
# ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN
# endif
#elif defined(linux) || defined(_linux) || defined(__linux)
# define IEF_PLATFORM_LINUX
#elif defined(__APPLE__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh)
# define IEF_PLATFORM_MACOSX
//#elif defined(__FreeBSD__) || define(__FreeBSD_kernel__)
//# define IEF_PLATFORM_FREEBSD
#else
# error Operating System not supported.
#endif
/* ***** Endian-ness ***** */
#if defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || (defined(__MIPS__) && defined(__MISPEB__)) || defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || defined(__sparc__) || defined(__hppa__)
# define IEF_ENDIAN_BIG
#else
# define IEF_ENDIAN_LITTLE
#endif
/* ***** Debug-ness ***** */
#if !defined(NDEBUG) || defined(_DEBUG)
# define IEF_DEBUG
#endif
/* ***** Primitive Types ***** */
#ifndef NULL
# define NULL 0
#endif
#include <climits>
namespace sys
{
#if UCHAR_MAX == 0xFF //char
typedef signed char s8;
typedef unsigned char u8;
#else
# error No 8-Bit Integer supported.
#endif
#if USHRT_MAX == 0xFFFF //short
typedef signed short s16;
typedef unsigned short u16;
#elif UINT_MAX == 0xFFFF
typedef signed int s16;
typedef unsigned int u16;
#elif ULONG_MAX == 0xFFFF
typedef signed long s16;
typedef unsigned long u16;
#else
# error No 16-Bit Integer supported.
#endif
#if USHRT_MAX == 0xFFFFFFFF //int
typedef signed short s32;
typedef unsigned short u32;
#elif UINT_MAX == 0xFFFFFFFF
typedef signed int s32;
typedef unsigned int u32;
#elif ULONG_MAX == 0xFFFFFFFF
typedef signed long s32;
typedef unsigned long u32;
#else
# error No 32-Bit Integer supported.
#endif
#if UINT_MAX == 0xFFFFFFFFFFFFFFFF //long
typedef signed int s64;
typedef unsigned int u64;
#elif ULONG_MAX == 0xFFFFFFFFFFFFFFFF
typedef signed long s64;
typedef unsigned long u64;
#elif ULLONG_MAX == 0xFFFFFFFFFFFFFFFF
typedef signed long long s64;
typedef unsigned long long u64;
#else
# pragma message("Warning: 64-bit not supported. s64 and u64 defined as 32-bit.")
typedef s32 s64;
typedef u32 u64;
#endif
//floating
typedef float f32;
typedef double f64;
//misc
typedef u8 byte;
typedef u8 ubyte;
typedef s8 sbyte;
typedef s64 llong;
typedef s64 sllong;
typedef u64 ullong;
typedef char* cstring;
} //namespace sys
|