Mercurial > hg > th-libs
annotate th_types.h @ 741:0852bd106034
Change th_mkdir_path() API, instead if returning boolean, return a th-lib error code.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 14 Dec 2022 01:32:40 +0200 |
parents | 31bc1ed07cf5 |
children | a557d1b2a356 |
rev | line source |
---|---|
0
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
1 /* |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
2 * Type definations |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
3 * Programmed and designed by Matti 'ccr' Hamalainen |
726 | 4 * (C) Copyright 2002-2022 Tecnic Software productions (TNSP) |
0
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
5 * |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
6 * Please read file 'COPYING' for information on license and distribution. |
622
6d99150a8f89
Some more slight Doxygenisation.
Matti Hamalainen <ccr@tnsp.org>
parents:
582
diff
changeset
|
7 * |
6d99150a8f89
Some more slight Doxygenisation.
Matti Hamalainen <ccr@tnsp.org>
parents:
582
diff
changeset
|
8 * If your code uses "config.h", you need to #include |
0
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
9 * it before including this header. |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
10 */ |
622
6d99150a8f89
Some more slight Doxygenisation.
Matti Hamalainen <ccr@tnsp.org>
parents:
582
diff
changeset
|
11 /// @file |
6d99150a8f89
Some more slight Doxygenisation.
Matti Hamalainen <ccr@tnsp.org>
parents:
582
diff
changeset
|
12 /// @brief Various platform-specific type and macro definitions. |
392 | 13 #ifndef TH_TYPES_H |
14 #define TH_TYPES_H 1 | |
0
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
15 |
573
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
16 |
723
10f2eba7c59b
Perhaps improve type definitions for MinGW v8+
Matti Hamalainen <ccr@tnsp.org>
parents:
722
diff
changeset
|
17 // Meh, this is a hack due to the crap non-portability of 64bit |
10f2eba7c59b
Perhaps improve type definitions for MinGW v8+
Matti Hamalainen <ccr@tnsp.org>
parents:
722
diff
changeset
|
18 // printf PRI* type specifiers/modifiers |
10f2eba7c59b
Perhaps improve type definitions for MinGW v8+
Matti Hamalainen <ccr@tnsp.org>
parents:
722
diff
changeset
|
19 #if !defined(TH_USE_BONK_TYPES) && (defined(__MINGW32__) || defined(__MINGW64__)) |
10f2eba7c59b
Perhaps improve type definitions for MinGW v8+
Matti Hamalainen <ccr@tnsp.org>
parents:
722
diff
changeset
|
20 # define __USE_MINGW_ANSI_STDIO 1 |
10f2eba7c59b
Perhaps improve type definitions for MinGW v8+
Matti Hamalainen <ccr@tnsp.org>
parents:
722
diff
changeset
|
21 #endif |
10f2eba7c59b
Perhaps improve type definitions for MinGW v8+
Matti Hamalainen <ccr@tnsp.org>
parents:
722
diff
changeset
|
22 |
10f2eba7c59b
Perhaps improve type definitions for MinGW v8+
Matti Hamalainen <ccr@tnsp.org>
parents:
722
diff
changeset
|
23 |
573
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
24 // Check for system type |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
25 #if defined(__WIN64) || defined(_WIN64) || defined(__WIN32) || defined(_WIN32) |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
26 # define TH_PLAT_WINDOWS 1 |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
27 #elif defined(__DJGPP__) && __DJGPP__ >= 2 |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
28 # define TH_PLAT_DOS 1 |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
29 # undef __STRICT_ANSI__ |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
30 #else |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
31 # define TH_PLAT_UNIX 1 |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
32 #endif |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
33 |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
34 |
150 | 35 // Check for standard headers |
575
ebdfc1fe1c98
Fixes to the type definitions.
Matti Hamalainen <ccr@tnsp.org>
parents:
573
diff
changeset
|
36 #if defined(HAVE_INTTYPES_H) |
ebdfc1fe1c98
Fixes to the type definitions.
Matti Hamalainen <ccr@tnsp.org>
parents:
573
diff
changeset
|
37 # include <inttypes.h> |
ebdfc1fe1c98
Fixes to the type definitions.
Matti Hamalainen <ccr@tnsp.org>
parents:
573
diff
changeset
|
38 # ifndef HAVE_STDINT_H |
ebdfc1fe1c98
Fixes to the type definitions.
Matti Hamalainen <ccr@tnsp.org>
parents:
573
diff
changeset
|
39 # define HAVE_STDINT_H 1 |
ebdfc1fe1c98
Fixes to the type definitions.
Matti Hamalainen <ccr@tnsp.org>
parents:
573
diff
changeset
|
40 # endif |
ebdfc1fe1c98
Fixes to the type definitions.
Matti Hamalainen <ccr@tnsp.org>
parents:
573
diff
changeset
|
41 #elif defined(HAVE_STDINT_H) |
150 | 42 # include <stdint.h> |
394
7df5991a0ed3
Handle HAVE_STDINT_H vs HAVE_SYS_TYPES_H somewhat more sanely.
Matti Hamalainen <ccr@tnsp.org>
parents:
393
diff
changeset
|
43 #elif defined(HAVE_SYS_TYPES_H) |
150 | 44 # include <sys/types.h> |
45 #endif | |
46 | |
391 | 47 |
48 // Check for arch bitness | |
573
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
49 #if !defined(TH_ARCH) && (defined(__WIN64) || defined(_WIN64)) |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
50 # define TH_ARCH 64 |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
51 #endif |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
52 |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
53 #if !defined(TH_ARCH) && (defined(__WIN32) || defined(_WIN32)) |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
54 # define TH_ARCH 32 |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
55 #endif |
7c0aa6bf484a
Improve system bit-ness handling and target platform.
Matti Hamalainen <ccr@tnsp.org>
parents:
553
diff
changeset
|
56 |
495 | 57 #if !defined(TH_ARCH) |
58 # if UINTPTR_MAX == 0xffffffff | |
59 # define TH_ARCH 32 | |
60 # elif UINTPTR_MAX == 0xffffffffffffffff | |
61 # define TH_ARCH 64 | |
62 # endif | |
391 | 63 #endif |
64 | |
65 | |
150 | 66 #if !defined(TH_ARCH) |
67 # if defined(__LP64__) || defined(_LP64) | |
68 # define TH_ARCH 64 | |
69 # else | |
70 # define TH_ARCH 32 | |
71 # endif | |
72 #endif | |
73 | |
579
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
74 |
150 | 75 // Do we have a valid arch? |
579
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
76 // If we don't have ISO C99 inttypes.h, define PRI* macros |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
77 #ifndef HAVE_INTTYPES_H |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
78 # if TH_ARCH == 32 |
395
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
79 # define PRIu32 "u" |
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
80 # define PRId32 "d" |
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
81 # define PRIx32 "x" |
396 | 82 # define PRIi32 "i" |
397 | 83 # define PRIo32 "o" |
395
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
84 # define PRIu64 "llu" |
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
85 # define PRId64 "lld" |
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
86 # define PRIx64 "llx" |
396 | 87 # define PRIi64 "lli" |
397 | 88 # define PRIo64 "llo" |
579
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
89 # elif TH_ARCH == 64 |
395
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
90 # define PRIu32 "u" |
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
91 # define PRId32 "d" |
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
92 # define PRIx32 "x" |
396 | 93 # define PRIi32 "i" |
397 | 94 # define PRIo32 "o" |
395
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
95 # define PRIu64 "lu" |
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
96 # define PRId64 "ld" |
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
97 # define PRIx64 "lx" |
396 | 98 # define PRIi64 "li" |
397 | 99 # define PRIo64 "lo" |
579
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
100 # else |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
101 # error Could not determine architecture (32/64bit), please define TH_ARCH=32 or 64 |
395
bffd3caf2d2c
Rename TH_PRI{u,d,x}* macros to match with standard ISO C99 inttypes.h PRI*.
Matti Hamalainen <ccr@tnsp.org>
parents:
394
diff
changeset
|
102 # endif |
579
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
103 #endif |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
104 |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
105 |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
106 // Define some printf specifiers and other useful things |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
107 #if TH_ARCH == 32 |
672
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
108 # define PRIu_SIZE_T PRIu32 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
109 # define PRId_SSIZE_T PRId32 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
110 # define PRIx_SIZE_T PRIx32 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
111 # define PRIX_SIZE_T PRIX32 |
723
10f2eba7c59b
Perhaps improve type definitions for MinGW v8+
Matti Hamalainen <ccr@tnsp.org>
parents:
722
diff
changeset
|
112 # ifdef TH_USE_BONK_TYPES |
672
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
113 # define PRId_OFF_T "ld" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
114 # define PRIx_OFF_T "lx" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
115 # define PRIX_OFF_T "lX" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
116 # else |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
117 # define PRId_OFF_T PRId32 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
118 # define PRIx_OFF_T PRIx32 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
119 # define PRIX_OFF_T PRIX32 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
120 # endif |
579
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
121 # ifndef TH_PTRSIZE |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
122 # define TH_PTRSIZE 32 |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
123 # endif |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
124 # ifndef INTPTR_MIN |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
125 # define INTPTR_MIN (-0x7fffffffL - 1) |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
126 # define INTPTR_MAX ( 0x7fffffffL) |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
127 # define UINTPTR_MAX ( 0xffffffffUL) |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
128 # endif |
c054e5831dfb
Clean up the th_types.h header #ifdef mess slightly.
Matti Hamalainen <ccr@tnsp.org>
parents:
578
diff
changeset
|
129 #elif TH_ARCH == 64 |
723
10f2eba7c59b
Perhaps improve type definitions for MinGW v8+
Matti Hamalainen <ccr@tnsp.org>
parents:
722
diff
changeset
|
130 # ifdef TH_USE_BONK_TYPES |
672
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
131 # define PRIu_SIZE_T "I64u" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
132 # define PRId_SSIZE_T "I64d" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
133 # define PRIx_SIZE_T "I64x" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
134 # define PRIX_SIZE_T "I64X" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
135 # define PRId_OFF_T "I64d" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
136 # define PRIx_OFF_T "I64x" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
137 # define PRIX_OFF_T "I64X" |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
138 # else |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
139 # define PRIu_SIZE_T PRIu64 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
140 # define PRId_SSIZE_T PRId64 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
141 # define PRIx_SIZE_T PRIx64 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
142 # define PRIX_SIZE_T PRIX64 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
143 # define PRId_OFF_T PRId64 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
144 # define PRIx_OFF_T PRIx64 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
145 # define PRIX_OFF_T PRIX64 |
1d4d22c862ed
Mess with PRI* types again.
Matti Hamalainen <ccr@tnsp.org>
parents:
663
diff
changeset
|
146 # endif |
308
0078dc5f6260
Define TH_PTRSIZE and UINTPTR_MAX if not defined already.
Matti Hamalainen <ccr@tnsp.org>
parents:
307
diff
changeset
|
147 # ifndef TH_PTRSIZE |
0078dc5f6260
Define TH_PTRSIZE and UINTPTR_MAX if not defined already.
Matti Hamalainen <ccr@tnsp.org>
parents:
307
diff
changeset
|
148 # define TH_PTRSIZE 64 |
0078dc5f6260
Define TH_PTRSIZE and UINTPTR_MAX if not defined already.
Matti Hamalainen <ccr@tnsp.org>
parents:
307
diff
changeset
|
149 # endif |
400
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
150 # ifndef INTPTR_MIN |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
151 # define INTPTR_MIN (-0x7fffffffffffffffL - 1) |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
152 # define INTPTR_MAX ( 0x7fffffffffffffffL) |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
153 # define UINTPTR_MAX ( 0xffffffffffffffffUL) |
308
0078dc5f6260
Define TH_PTRSIZE and UINTPTR_MAX if not defined already.
Matti Hamalainen <ccr@tnsp.org>
parents:
307
diff
changeset
|
154 # endif |
0
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
155 #endif |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
156 |
400
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
157 |
575
ebdfc1fe1c98
Fixes to the type definitions.
Matti Hamalainen <ccr@tnsp.org>
parents:
573
diff
changeset
|
158 /* Default assumptions for these types should be ok for most 32/64bit platforms... |
0
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
159 */ |
582
8c516309037e
Check for !defined(HAVE_STDINT_H) && !defined(HAVE_SYS_TYPES_H) before
Matti Hamalainen <ccr@tnsp.org>
parents:
579
diff
changeset
|
160 #if !defined(HAVE_STDINT_H) && !defined(HAVE_SYS_TYPES_H) |
0
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
161 typedef unsigned char uint8_t; |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
162 typedef signed char int8_t; |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
163 typedef unsigned short int uint16_t; |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
164 typedef signed short int int16_t; |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
165 typedef unsigned int uint32_t; |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
166 typedef signed int int32_t; |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
167 typedef unsigned long long uint64_t; |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
168 typedef signed long long int64_t; |
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
169 |
400
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
170 #if TH_ARCH == 32 |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
171 typedef long long int intmax_t; |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
172 typedef unsigned long long int uintmax_t; |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
173 #elif TH_ARCH == 64 |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
174 typedef long int intmax_t; |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
175 typedef unsigned long int uintmax_t; |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
176 #endif |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
177 #endif |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
178 |
f7919a143fcb
Add some missing types and macros when we do not have inttypes.h or stdint.h
Matti Hamalainen <ccr@tnsp.org>
parents:
398
diff
changeset
|
179 |
453
efd33accdc81
Break backwards compatibility by renaming BOOL, TRUE and FALSE to lowercase.
Matti Hamalainen <ccr@tnsp.org>
parents:
432
diff
changeset
|
180 /* Define a boolean type, if needed |
0
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
181 */ |
735
31bc1ed07cf5
Renaming BOOL->bool and TRUE/FALSE to true/false, and using stdbool.h if available.
Matti Hamalainen <ccr@tnsp.org>
parents:
726
diff
changeset
|
182 #if defined(HAVE_STDBOOL_H) |
31bc1ed07cf5
Renaming BOOL->bool and TRUE/FALSE to true/false, and using stdbool.h if available.
Matti Hamalainen <ccr@tnsp.org>
parents:
726
diff
changeset
|
183 # include <stdbool.h> |
31bc1ed07cf5
Renaming BOOL->bool and TRUE/FALSE to true/false, and using stdbool.h if available.
Matti Hamalainen <ccr@tnsp.org>
parents:
726
diff
changeset
|
184 #elif !defined(false) && !defined(true) && !defined(bool) |
31bc1ed07cf5
Renaming BOOL->bool and TRUE/FALSE to true/false, and using stdbool.h if available.
Matti Hamalainen <ccr@tnsp.org>
parents:
726
diff
changeset
|
185 typedef enum { false = 0, true = 1 } bool; |
31bc1ed07cf5
Renaming BOOL->bool and TRUE/FALSE to true/false, and using stdbool.h if available.
Matti Hamalainen <ccr@tnsp.org>
parents:
726
diff
changeset
|
186 #else |
31bc1ed07cf5
Renaming BOOL->bool and TRUE/FALSE to true/false, and using stdbool.h if available.
Matti Hamalainen <ccr@tnsp.org>
parents:
726
diff
changeset
|
187 # error Missing boolean definition and could not define our own. |
457
85fa3d333556
Actually, revert the boolean changes .. meh.
Matti Hamalainen <ccr@tnsp.org>
parents:
456
diff
changeset
|
188 #endif |
0
bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
189 |
663 | 190 |
191 /** @brief th_char_t | |
192 * Character type. Currently it is not recommended to re-define this, | |
193 * but in distant future it may be possible to change to uint32_t for | |
194 * Unicode 32bit handling. | |
195 */ | |
196 #ifdef TH_CHAR_TYPE | |
197 typedef TH_CHAR_TYPE th_char_t; | |
198 #else | |
199 typedef char th_char_t; | |
200 #endif | |
201 | |
202 | |
392 | 203 #endif // TH_TYPES_H |