diff --git a/acinclude.m4 b/acinclude.m4 index 08653d83..7ea20f4f 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -349,62 +349,3 @@ AH_BOTTOM([#if C_HAS_BUILTIN_EXPECT #define GCC_UNLIKELY(x) (x) #define GCC_LIKELY(x) (x) #endif]) - -AH_BOTTOM([ -typedef double Real64; - -#if SIZEOF_UNSIGNED_CHAR != 1 -# error "sizeof (unsigned char) != 1" -#else - typedef unsigned char Bit8u; - typedef signed char Bit8s; -#endif - -#if SIZEOF_UNSIGNED_SHORT != 2 -# error "sizeof (unsigned short) != 2" -#else - typedef unsigned short Bit16u; - typedef signed short Bit16s; -#endif - -#if SIZEOF_UNSIGNED_INT == 4 - typedef unsigned int Bit32u; - typedef signed int Bit32s; -#define sBit32t -#elif SIZEOF_UNSIGNED_LONG == 4 - typedef unsigned long Bit32u; - typedef signed long Bit32s; -#define sBit32t "l" -#else -# error "can't find sizeof(type) of 4 bytes!" -#endif -#define sBit32fs(a) sBit32t #a - -#if SIZEOF_UNSIGNED_LONG == 8 - typedef unsigned long Bit64u; - typedef signed long Bit64s; -#define sBit64t "l" -#elif SIZEOF_UNSIGNED_LONG_LONG == 8 - typedef unsigned long long Bit64u; - typedef signed long long Bit64s; -#define sBit64t "ll" -#else -# error "can't find data type of 8 bytes" -#endif -#define sBit64fs(a) sBit64t #a - -#if SIZEOF_INT_P == 4 - -typedef Bit32u Bitu; -typedef Bit32s Bits; -#define sBitfs sBit32fs - -#else //SIZEOF_INT_P - -typedef Bit64u Bitu; -typedef Bit64s Bits; -#define sBitfs sBit64fs - -#endif - -]) diff --git a/include/dosbox.h b/include/dosbox.h index b5e091b9..6d6f6d74 100644 --- a/include/dosbox.h +++ b/include/dosbox.h @@ -21,6 +21,7 @@ #define DOSBOX_DOSBOX_H #include "config.h" +#include "types.h" GCC_ATTRIBUTE(noreturn) void E_Exit(const char * message,...) GCC_ATTRIBUTE( __format__(__printf__, 1, 2)); diff --git a/include/types.h b/include/types.h new file mode 100644 index 00000000..b2f0ac64 --- /dev/null +++ b/include/types.h @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2019 The DOSBox Team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef DOSBOX_TYPES_H +#define DOSBOX_TYPES_H + +#include +#include + +using Bit8u = uint8_t; +using Bit16u = uint16_t; +using Bit32u = uint32_t; +using Bit64u = uint64_t; +using Bitu = uintptr_t; + +using Bit8s = int8_t; +using Bit16s = int16_t; +using Bit32s = int32_t; +using Bit64s = int64_t; +using Bits = intptr_t; + +using Real64 = double; + +// TODO: remove +#define sBitfs(x) PRIuPTR + +#endif /* DOSBOX_TYPES_H */ diff --git a/src/platform/visualc/config.h b/src/platform/visualc/config.h index 7593029b..5bb8d252 100644 --- a/src/platform/visualc/config.h +++ b/src/platform/visualc/config.h @@ -72,28 +72,3 @@ #if defined(_MSC_VER) && (_MSC_VER >= 1400) #pragma warning(disable : 4996) #endif - -typedef double Real64; -/* The internal types */ -typedef unsigned char Bit8u; -typedef signed char Bit8s; -typedef unsigned short Bit16u; -typedef signed short Bit16s; -typedef unsigned int Bit32u; -typedef signed int Bit32s; -typedef unsigned __int64 Bit64u; -typedef signed __int64 Bit64s; -#define sBit32t -#define sBit64t "I64" -#define sBit32fs(a) sBit32t #a -#define sBit64fs(a) sBit64t #a -#ifdef _M_X64 -typedef Bit64u Bitu; -typedef Bit64s Bits; -#define sBitfs sBit64fs -#else // _M_IX86 -typedef Bit32u Bitu; -typedef Bit32s Bits; -#define sBitfs sBit32fs -#endif -