--- np2/x11/compiler.h 2004/05/22 16:35:07 1.18 +++ np2/x11/compiler.h 2008/02/07 14:37:30 1.35 @@ -1,39 +1,53 @@ +/* $Id: compiler.h,v 1.35 2008/02/07 14:37:30 monaka Exp $ */ + +/*- + * Copyright (c) 2003, 2004 NONAKA Kimihiro + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + #ifndef NP2_X11_COMPILER_H__ #define NP2_X11_COMPILER_H__ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #ifdef WORDS_BIGENDIAN #define BYTESEX_BIG #else /* !WORDS_BIGENDIAN */ #define BYTESEX_LITTLE #endif /* WORDS_BIGENDIAN */ -#if defined(USE_NETBSDAUDIO) && !defined(__NetBSD__) -#undef USE_NETBSDAUDIO -#endif - -#if !defined(USE_NETBSDAUDIO) && !defined(USE_OSSAUDIO) && !defined(USE_ESDAUDIO) && !defined(USE_SDLAUDIO) && !defined(USE_SDLMIXER) +#if !defined(USE_SDLAUDIO) && !defined(USE_SDLMIXER) #ifndef NOSOUND #define NOSOUND +#undef VERMOUTH_LIB #endif /* !NOSOUND */ -#else /* USE_NETBSDAUDIO || USE_OSSAUDIO || USE_ESDAUDIO || USE_SDLAUDIO || USE_SDLMIXER */ +#else /* USE_SDLAUDIO || USE_SDLMIXER */ #undef NOSOUND -#endif /* !USE_NETBSDAUDIO && !USE_OSSAUDIO && !USE_ESDAUDIO && !USE_SDLAUDIO && !USE_SDMIXER */ - -#if defined(NOSOUND) - -#undef VERMOUTH_LIB -#undef SOUND_CRITICAL -#undef SOUNDRESERVE - -#else /* !NOSOUND */ - -#include - #define VERMOUTH_LIB -#undef SOUND_CRITICAL -#undef SOUNDRESERVE - -#endif /* NOSOUND */ +#endif /* !USE_SDLAUDIO && !USE_SDLMIXER */ #include #include @@ -52,15 +66,35 @@ #define OSLANG_EUC #define OSLINEBREAK_LF -typedef signed char CHAR; -typedef signed short SHORT; -typedef signed int INT; -typedef signed long LONG; +#if (USE_GTK2 > 0) + +#include + +typedef gint32 SINT; +typedef guint32 UINT; + +typedef gint8 SINT8; +typedef gint16 SINT16; +typedef gint32 SINT32; +typedef gint64 SINT64; + +typedef guint8 UINT8; +typedef guint16 UINT16; +typedef guint32 UINT32; +typedef guint64 UINT64; + +typedef guint8 BYTE; +typedef gchar TCHAR; + +typedef gboolean BOOL; + +#define PTR_TO_UINT32(p) ((UINT32)GPOINTER_TO_UINT(p)) +#define UINT32_TO_PTR(v) GUINT_TO_POINTER((UINT32)(v)) + +#else /* USE_GTK2 <= 0 */ -typedef unsigned char UCHAR; -typedef unsigned short USHORT; +typedef signed int SINT; typedef unsigned int UINT; -typedef unsigned long ULONG; typedef signed char SINT8; typedef signed short SINT16; @@ -73,13 +107,12 @@ typedef unsigned int UINT32; typedef unsigned long long UINT64; typedef unsigned char BYTE; -typedef unsigned short WORD; -typedef unsigned int DWORD; - -typedef unsigned char TCHAR; +typedef char TCHAR; typedef int BOOL; +#endif /* USE_GTK2 > 0 */ + #ifndef TRUE #define TRUE 1 #endif @@ -130,13 +163,13 @@ typedef int BOOL; #define __ASSERT(s) #endif #ifndef INLINE -#define INLINE __inline +#define INLINE inline #endif #endif /* archtecture */ /* amd64 */ -#if defined(amd64) || defined(__AMD64__) || defined(__amd64__)) || +#if defined(amd64) || defined(__AMD64__) || defined(__amd64__) || \ defined(x86_64) || defined(__x86_64__) || defined(__X86_64__) #define NP2_CPU_ARCH_AMD64 #endif /* amd64 */ @@ -146,7 +179,6 @@ typedef int BOOL; #endif /* i386 */ #if defined(__GNUC__) -#define GCC_ATTR_PACKED __attribute__((packed)) #if defined(NP2_CPU_ARCH_IA32) #define GCC_CPU_ARCH_IA32 #endif @@ -159,10 +191,17 @@ typedef int BOOL; #define NELEMENTS(a) ((int)(sizeof(a) / sizeof(a[0]))) #endif -UINT32 gettick(); +UINT32 gettick(void); #define GETTICK() gettick() #define GETRAND() random() #define SPRINTF sprintf +#define STRLEN strlen + +#define OEMCHAR char +#define OEMTEXT(s) s +#define OEMNULLSTR OEMTEXT("") +#define OEMSPRINTF sprintf +#define OEMSTRLEN strlen #if defined(CPUCORE_IA32) void toolkit_msgbox(const char *title, const char *msg); @@ -170,6 +209,7 @@ void toolkit_msgbox(const char *title, c #define SUPPORT_PC9821 #define SUPPORT_CRT31KHZ +#define SUPPORT_IDEIO #else #define SUPPORT_CRT15KHZ #endif @@ -180,9 +220,6 @@ void toolkit_msgbox(const char *title, c #define LOADINTELWORD(a) (*((UINT16 *)(a))) #define STOREINTELDWORD(a, b) *(UINT32 *)(a) = (b) #define STOREINTELWORD(a, b) *(UINT16 *)(a) = (b) -#if defined(__GNUC__) && defined(IA32_USE_GCC_ATTR_REGPARM) -#define GCC_ATTR_REGPARM __attribute__((regparm(2))) -#endif #elif defined(arm) || defined (__arm__) #define MEMOPTIMIZE 2 #define REG8 UINT @@ -193,7 +230,6 @@ void toolkit_msgbox(const char *title, c #endif #define SUPPORT_EUC -#define SUPPORT_SJIS #undef SUPPORT_8BPP #define SUPPORT_16BPP @@ -201,19 +237,22 @@ void toolkit_msgbox(const char *title, c #define SUPPORT_32BPP #define SUPPORT_NORMALDISP +#undef SOUND_CRITICAL +#undef SOUNDRESERVE + #define SUPPORT_PC9861K #define SUPPORT_HOSTDRV #undef SUPPORT_SASI #undef SUPPORT_SCSI -#undef SUPPORT_IDE -#if USE_GTK > 0 +#if (USE_GTK2 > 0) #define SUPPORT_S98 #define SUPPORT_KEYDISP +#define SUPPORT_SOFTKBD 0 #endif -#if USE_SDL > 0 +#if (USE_SDL > 0) #define USE_SYSMENU #define SCREEN_BPP 16 #undef SUPPORT_8BPP @@ -221,6 +260,11 @@ void toolkit_msgbox(const char *title, c #undef SUPPORT_32BPP #endif +#if (USE_SDL > 0) || defined(USE_SDLAUDIO) || defined(USE_SDLMIXER) +#define SUPPORT_JOYSTICK +#define USE_SDL_JOYSTICK +#endif /* USE_SDL > 0 || USE_SDLAUDIO || USE_SDLMIXER */ + /* * You could specify a complete path, e.g. "/etc/timidity.cfg", and * then specify the library directory in the configuration file.