aboutsummaryrefslogtreecommitdiff
path: root/src/3rdParty/efsw/sophist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdParty/efsw/sophist.h')
-rw-r--r--[-rwxr-xr-x]src/3rdParty/efsw/sophist.h294
1 files changed, 147 insertions, 147 deletions
diff --git a/src/3rdParty/efsw/sophist.h b/src/3rdParty/efsw/sophist.h
index 3a64504..82e5c36 100755..100644
--- a/src/3rdParty/efsw/sophist.h
+++ b/src/3rdParty/efsw/sophist.h
@@ -1,147 +1,147 @@
1/* sophist.h - 0.3 - public domain - Sean Barrett 2010 1/* sophist.h - 0.3 - public domain - Sean Barrett 2010
2** Knowledge drawn from Brian Hook's posh.h and http://predef.sourceforge.net 2** Knowledge drawn from Brian Hook's posh.h and http://predef.sourceforge.net
3** Sophist provides portable types; you typedef/#define them to your own names 3** Sophist provides portable types; you typedef/#define them to your own names
4** 4**
5** defines: 5** defines:
6** - SOPHIST_endian - either SOPHIST_little_endian or SOPHIST_big_endian 6** - SOPHIST_endian - either SOPHIST_little_endian or SOPHIST_big_endian
7** - SOPHIST_has_64 - either 0 or 1; if 0, int64 types aren't defined 7** - SOPHIST_has_64 - either 0 or 1; if 0, int64 types aren't defined
8** - SOPHIST_pointer64 - either 0 or 1; if 1, pointer is 64-bit 8** - SOPHIST_pointer64 - either 0 or 1; if 1, pointer is 64-bit
9** 9**
10** - SOPHIST_intptr, SOPHIST_uintptr - integer same size as pointer 10** - SOPHIST_intptr, SOPHIST_uintptr - integer same size as pointer
11** - SOPHIST_int8, SOPHIST_uint8, SOPHIST_int16, SOPHIST_uint16 11** - SOPHIST_int8, SOPHIST_uint8, SOPHIST_int16, SOPHIST_uint16
12** - SOPHIST_int32, SOPHIST_uint32, SOPHIST_int64, SOPHIST_uint64 12** - SOPHIST_int32, SOPHIST_uint32, SOPHIST_int64, SOPHIST_uint64
13** - SOPHIST_int64_constant(number) - macros for creating 64-bit 13** - SOPHIST_int64_constant(number) - macros for creating 64-bit
14** - SOPHIST_uint64_constant(number) integer constants 14** - SOPHIST_uint64_constant(number) integer constants
15** - SOPHIST_printf_format64 - string for printf format for int64 15** - SOPHIST_printf_format64 - string for printf format for int64
16*/ 16*/
17 17
18#ifndef __INCLUDE_SOPHIST_H__ 18#ifndef __INCLUDE_SOPHIST_H__
19#define __INCLUDE_SOPHIST_H__ 19#define __INCLUDE_SOPHIST_H__
20 20
21#define SOPHIST_compiletime_assert(name,val) \ 21#define SOPHIST_compiletime_assert(name,val) \
22 typedef int SOPHIST__assert##name[(val) ? 1 : -1] 22 typedef int SOPHIST__assert##name[(val) ? 1 : -1]
23 23
24/* define a couple synthetic rules to make code more readable */ 24/* define a couple synthetic rules to make code more readable */
25#if (defined(__sparc__) || defined(__sparc)) && \ 25#if (defined(__sparc__) || defined(__sparc)) && \
26 (defined(__arch64__) || defined(__sparcv9) || defined(__sparc_v9__)) 26 (defined(__arch64__) || defined(__sparcv9) || defined(__sparc_v9__))
27 #define SOPHIST_sparc64 27 #define SOPHIST_sparc64
28#endif 28#endif
29 29
30#if (defined(linux) || defined(__linux__)) && \ 30#if (defined(linux) || defined(__linux__)) && \
31 (defined(__alpha)||defined(__alpha__)||defined(__x86_64__)||defined(_M_X64)) 31 (defined(__alpha)||defined(__alpha__)||defined(__x86_64__)||defined(_M_X64))
32 #define SOPHIST_linux64 32 #define SOPHIST_linux64
33#endif 33#endif
34 34
35/* basic types */ 35/* basic types */
36typedef signed char SOPHIST_int8; 36typedef signed char SOPHIST_int8;
37typedef unsigned char SOPHIST_uint8; 37typedef unsigned char SOPHIST_uint8;
38 38
39typedef signed short SOPHIST_int16; 39typedef signed short SOPHIST_int16;
40typedef unsigned short SOPHIST_uint16; 40typedef unsigned short SOPHIST_uint16;
41 41
42#ifdef __palmos__ 42#ifdef __palmos__
43 typedef signed long SOPHIST_int32; 43 typedef signed long SOPHIST_int32;
44 typedef unsigned long SOPHIST_uint32; 44 typedef unsigned long SOPHIST_uint32;
45#else 45#else
46 typedef signed int SOPHIST_int32; 46 typedef signed int SOPHIST_int32;
47 typedef unsigned int SOPHIST_uint32; 47 typedef unsigned int SOPHIST_uint32;
48#endif 48#endif
49 49
50#ifndef SOPHIST_NO_64 50#ifndef SOPHIST_NO_64
51 #if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__) \ 51 #if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__) \
52 || (defined(__alpha) && defined(__DECC)) 52 || (defined(__alpha) && defined(__DECC))
53 53
54 typedef signed __int64 SOPHIST_int64; 54 typedef signed __int64 SOPHIST_int64;
55 typedef unsigned __int64 SOPHIST_uint64; 55 typedef unsigned __int64 SOPHIST_uint64;
56 #define SOPHIST_has_64 1 56 #define SOPHIST_has_64 1
57 #define SOPHIST_int64_constant(x) (x##i64) 57 #define SOPHIST_int64_constant(x) (x##i64)
58 #define SOPHIST_uint64_constant(x) (x##ui64) 58 #define SOPHIST_uint64_constant(x) (x##ui64)
59 #define SOPHIST_printf_format64 "I64" 59 #define SOPHIST_printf_format64 "I64"
60 60
61 #elif defined(__LP64__) || defined(__powerpc64__) || defined(SOPHIST_sparc64) 61 #elif defined(__LP64__) || defined(__powerpc64__) || defined(SOPHIST_sparc64)
62 62
63 typedef signed long SOPHIST_int64; 63 typedef signed long SOPHIST_int64;
64 typedef unsigned long SOPHIST_uint64; 64 typedef unsigned long SOPHIST_uint64;
65 65
66 #define SOPHIST_has_64 1 66 #define SOPHIST_has_64 1
67 #define SOPHIST_int64_constant(x) ((SOPHIST_int64) x) 67 #define SOPHIST_int64_constant(x) ((SOPHIST_int64) x)
68 #define SOPHIST_uint64_constant(x) ((SOPHIST_uint64) x) 68 #define SOPHIST_uint64_constant(x) ((SOPHIST_uint64) x)
69 #define SOPHIST_printf_format64 "l" 69 #define SOPHIST_printf_format64 "l"
70 70
71 #elif defined(_LONG_LONG) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) \ 71 #elif defined(_LONG_LONG) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) \
72 || defined(__GNUC__) || defined(__MWERKS__) || defined(__APPLE_CC__) \ 72 || defined(__GNUC__) || defined(__MWERKS__) || defined(__APPLE_CC__) \
73 || defined(sgi) || defined (__sgi) || defined(__sgi__) \ 73 || defined(sgi) || defined (__sgi) || defined(__sgi__) \
74 || defined(_CRAYC) 74 || defined(_CRAYC)
75 75
76 typedef signed long long SOPHIST_int64; 76 typedef signed long long SOPHIST_int64;
77 typedef unsigned long long SOPHIST_uint64; 77 typedef unsigned long long SOPHIST_uint64;
78 78
79 #define SOPHIST_has_64 1 79 #define SOPHIST_has_64 1
80 #define SOPHIST_int64_constant(x) (x##LL) 80 #define SOPHIST_int64_constant(x) (x##LL)
81 #define SOPHIST_uint64_constant(x) (x##ULL) 81 #define SOPHIST_uint64_constant(x) (x##ULL)
82 #define SOPHIST_printf_format64 "ll" 82 #define SOPHIST_printf_format64 "ll"
83 #endif 83 #endif
84#endif 84#endif
85 85
86#ifndef SOPHIST_has_64 86#ifndef SOPHIST_has_64
87#define SOPHIST_has_64 0 87#define SOPHIST_has_64 0
88#endif 88#endif
89 89
90SOPHIST_compiletime_assert( int8 , sizeof(SOPHIST_int8 ) == 1); 90SOPHIST_compiletime_assert( int8 , sizeof(SOPHIST_int8 ) == 1);
91SOPHIST_compiletime_assert(uint16, sizeof(SOPHIST_int16) == 2); 91SOPHIST_compiletime_assert(uint16, sizeof(SOPHIST_int16) == 2);
92SOPHIST_compiletime_assert( int32, sizeof(SOPHIST_int32 ) == 4); 92SOPHIST_compiletime_assert( int32, sizeof(SOPHIST_int32 ) == 4);
93SOPHIST_compiletime_assert(uint32, sizeof(SOPHIST_uint32) == 4); 93SOPHIST_compiletime_assert(uint32, sizeof(SOPHIST_uint32) == 4);
94 94
95#if SOPHIST_has_64 95#if SOPHIST_has_64
96 SOPHIST_compiletime_assert( int64, sizeof(SOPHIST_int64 ) == 8); 96 SOPHIST_compiletime_assert( int64, sizeof(SOPHIST_int64 ) == 8);
97 SOPHIST_compiletime_assert(uint64, sizeof(SOPHIST_uint64) == 8); 97 SOPHIST_compiletime_assert(uint64, sizeof(SOPHIST_uint64) == 8);
98#endif 98#endif
99 99
100/* determine whether pointers are 64-bit */ 100/* determine whether pointers are 64-bit */
101 101
102#if defined(SOPHIST_linux64) || defined(SOPHIST_sparc64) \ 102#if defined(SOPHIST_linux64) || defined(SOPHIST_sparc64) \
103 || defined(__osf__) || (defined(_WIN64) && !defined(_XBOX)) \ 103 || defined(__osf__) || (defined(_WIN64) && !defined(_XBOX)) \
104 || defined(__64BIT__) \ 104 || defined(__64BIT__) \
105 || defined(__LP64) || defined(__LP64__) || defined(_LP64) \ 105 || defined(__LP64) || defined(__LP64__) || defined(_LP64) \
106 || defined(_ADDR64) || defined(_CRAYC) \ 106 || defined(_ADDR64) || defined(_CRAYC) \
107 107
108 #define SOPHIST_pointer64 1 108 #define SOPHIST_pointer64 1
109 109
110 SOPHIST_compiletime_assert(pointer64, sizeof(void*) == 8); 110 SOPHIST_compiletime_assert(pointer64, sizeof(void*) == 8);
111 111
112 typedef SOPHIST_int64 SOPHIST_intptr; 112 typedef SOPHIST_int64 SOPHIST_intptr;
113 typedef SOPHIST_uint64 SOPHIST_uintptr; 113 typedef SOPHIST_uint64 SOPHIST_uintptr;
114#else 114#else
115 115
116 #define SOPHIST_pointer64 0 116 #define SOPHIST_pointer64 0
117 117
118 SOPHIST_compiletime_assert(pointer64, sizeof(void*) <= 4); 118 SOPHIST_compiletime_assert(pointer64, sizeof(void*) <= 4);
119 119
120 /* do we care about pointers that are only 16-bit? */ 120 /* do we care about pointers that are only 16-bit? */
121 typedef SOPHIST_int32 SOPHIST_intptr; 121 typedef SOPHIST_int32 SOPHIST_intptr;
122 typedef SOPHIST_uint32 SOPHIST_uintptr; 122 typedef SOPHIST_uint32 SOPHIST_uintptr;
123 123
124#endif 124#endif
125 125
126SOPHIST_compiletime_assert(intptr, sizeof(SOPHIST_intptr) == sizeof(char *)); 126SOPHIST_compiletime_assert(intptr, sizeof(SOPHIST_intptr) == sizeof(char *));
127 127
128/* enumerate known little endian cases; fallback to big-endian */ 128/* enumerate known little endian cases; fallback to big-endian */
129 129
130#define SOPHIST_little_endian 1 130#define SOPHIST_little_endian 1
131#define SOPHIST_big_endian 2 131#define SOPHIST_big_endian 2
132 132
133#if defined(__386__) || defined(i386) || defined(__i386__) \ 133#if defined(__386__) || defined(i386) || defined(__i386__) \
134 || defined(__X86) || defined(_M_IX86) \ 134 || defined(__X86) || defined(_M_IX86) \
135 || defined(_M_X64) || defined(__x86_64__) \ 135 || defined(_M_X64) || defined(__x86_64__) \
136 || defined(alpha) || defined(__alpha) || defined(__alpha__) \ 136 || defined(alpha) || defined(__alpha) || defined(__alpha__) \
137 || defined(_M_ALPHA) \ 137 || defined(_M_ALPHA) \
138 || defined(ARM) || defined(_ARM) || defined(__arm__) \ 138 || defined(ARM) || defined(_ARM) || defined(__arm__) \
139 || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) \ 139 || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) \
140 || defined(_WIN32_WCE) || defined(__NT__) \ 140 || defined(_WIN32_WCE) || defined(__NT__) \
141 || defined(__MIPSEL__) 141 || defined(__MIPSEL__)
142 #define SOPHIST_endian SOPHIST_little_endian 142 #define SOPHIST_endian SOPHIST_little_endian
143#else 143#else
144 #define SOPHIST_endian SOPHIST_big_endian 144 #define SOPHIST_endian SOPHIST_big_endian
145#endif 145#endif
146 146
147#endif /* __INCLUDE_SOPHIST_H__ */ 147#endif /* __INCLUDE_SOPHIST_H__ */