Mercurial > hg > dmlib
comparison src/dmlib.h @ 2394:147d40b708ea
Copy improvements to the platform 32/64bit logic from th-libs.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 09 Jan 2020 20:59:20 +0200 |
parents | 85700c9b7dc8 |
children | e149fc273f2b |
comparison
equal
deleted
inserted
replaced
2393:85700c9b7dc8 | 2394:147d40b708ea |
---|---|
28 #endif | 28 #endif |
29 | 29 |
30 | 30 |
31 // Check for arch bitness | 31 // Check for arch bitness |
32 #if defined(__WIN64) || defined(_WIN64) || defined(_WIN32) || defined(__WIN32) | 32 #if defined(__WIN64) || defined(_WIN64) || defined(_WIN32) || defined(__WIN32) |
33 # define DM_WINDOWS 1 | 33 # define DM_PLAT_WINDOWS 1 |
34 # if defined(__MINGW32__) || defined(__MINGW64__) | 34 # if defined(__MINGW32__) || defined(__MINGW64__) |
35 # undef __USE_MINGW_ANSI_STDIO | 35 # undef __USE_MINGW_ANSI_STDIO |
36 # define __USE_MINGW_ANSI_STDIO 1 | 36 # define __USE_MINGW_ANSI_STDIO 1 |
37 # endif | 37 # endif |
38 #else | |
39 # define DM_PLAT_UNIX 1 | |
40 #endif | |
41 | |
42 // Check for arch bitness | |
43 #if !defined(DM_ARCH) && (defined(__WIN64) || defined(_WIN64)) | |
44 # define DM_ARCH 64 | |
45 #endif | |
46 | |
47 #if !defined(DM_ARCH) && (defined(__WIN32) || defined(_WIN32)) | |
48 # define DM_ARCH 32 | |
38 #endif | 49 #endif |
39 | 50 |
40 #if !defined(DM_ARCH) | 51 #if !defined(DM_ARCH) |
41 # if defined(__LP64__) || defined(_LP64) || defined(__WIN64) || defined(_WIN64) | 52 # if UINTPTR_MAX == 0xffffffff |
53 # define DM_ARCH 32 | |
54 # elif UINTPTR_MAX == 0xffffffffffffffff | |
55 # define DM_ARCH 64 | |
56 # endif | |
57 #endif | |
58 | |
59 | |
60 #if !defined(DM_ARCH) | |
61 # if defined(__LP64__) || defined(_LP64) | |
42 # define DM_ARCH 64 | 62 # define DM_ARCH 64 |
43 # else | 63 # else |
44 # define DM_ARCH 32 | 64 # define DM_ARCH 32 |
45 # endif | 65 # endif |
46 #endif | 66 #endif |
69 #if DM_ARCH == 32 | 89 #if DM_ARCH == 32 |
70 # define DM_PRIu_SIZE_T PRIu32 | 90 # define DM_PRIu_SIZE_T PRIu32 |
71 # define DM_PRId_SSIZE_T PRId32 | 91 # define DM_PRId_SSIZE_T PRId32 |
72 # define DM_PRIx_SIZE_T PRIx32 | 92 # define DM_PRIx_SIZE_T PRIx32 |
73 # define DM_PRIX_SIZE_T PRIX32 | 93 # define DM_PRIX_SIZE_T PRIX32 |
94 # ifdef DM_PLAT_WINDOWS | |
74 # define DM_PRId_OFF_T "ld" | 95 # define DM_PRId_OFF_T "ld" |
75 # define DM_PRIx_OFF_T "lx" | 96 # define DM_PRIx_OFF_T "lx" |
76 # define DM_PRIX_OFF_T "lX" | 97 # define DM_PRIX_OFF_T "lX" |
98 # else | |
99 # define DM_PRId_OFF_T PRId32 | |
100 # define DM_PRIx_OFF_T PRIx32 | |
101 # define DM_PRIX_OFF_T PRIX32 | |
102 # endif | |
77 #elif DM_ARCH == 64 | 103 #elif DM_ARCH == 64 |
78 # ifdef DM_WINDOWS | 104 # ifdef DM_PLAT_WINDOWS // Unsure if this is MinGW64 only thing? |
79 # define DM_PRIu_SIZE_T "I64u" | 105 # define DM_PRIu_SIZE_T "I64u" |
80 # define DM_PRId_SSIZE_T "I64d" | 106 # define DM_PRId_SSIZE_T "I64d" |
81 # define DM_PRIx_SIZE_T "I64x" | 107 # define DM_PRIx_SIZE_T "I64x" |
82 # define DM_PRIX_SIZE_T "I64X" | 108 # define DM_PRIX_SIZE_T "I64X" |
83 # define DM_PRId_OFF_T "I64d" | 109 # define DM_PRId_OFF_T "I64d" |