--- np2/x11/compiler.h 2004/02/05 16:39:19 1.12 +++ np2/x11/compiler.h 2004/07/26 15:53:26 1.24 @@ -1,3 +1,31 @@ +/* $Id: compiler.h,v 1.24 2004/07/26 15:53:26 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__ @@ -14,26 +42,15 @@ #if !defined(USE_NETBSDAUDIO) && !defined(USE_OSSAUDIO) && !defined(USE_ESDAUDIO) && !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 */ #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 -#define SOUNDRESERVE 100 - -#endif /* NOSOUND */ +#if defined(USE_NETBSDAUDIO) || defined(USE_OSSAUDIO) || defined(USE_ESDAUDIO) +#include +#endif /* USE_NETBSDAUDIO || USE_OSSAUDIO || USE_ESDAUDIO */ +#endif /* !USE_NETBSDAUDIO && !USE_OSSAUDIO && !USE_ESDAUDIO && !USE_SDLAUDIO && !USE_SDMIXER */ #include #include @@ -52,15 +69,30 @@ #define OSLANG_EUC #define OSLINEBREAK_LF -typedef signed char CHAR; -typedef signed short SHORT; -typedef signed int INT; -typedef signed long LONG; +#if USE_GTK > 0 || USE_GTK2 > 0 + +#include "glib.h" + +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; + +#else /* USE_GTK == 0 && USE_GTK2 == 0 */ -typedef unsigned char UCHAR; -typedef unsigned short USHORT; typedef unsigned int UINT; -typedef unsigned long ULONG; typedef signed char SINT8; typedef signed short SINT16; @@ -73,13 +105,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_GTK > 0 || USE_GTK2 > 0 */ + #ifndef TRUE #define TRUE 1 #endif @@ -134,11 +165,32 @@ typedef int BOOL; #endif #endif +/* archtecture */ +/* amd64 */ +#if defined(amd64) || defined(__AMD64__) || defined(__amd64__) || \ + defined(x86_64) || defined(__x86_64__) || defined(__X86_64__) +#define NP2_CPU_ARCH_AMD64 +#endif /* amd64 */ +/* i386 */ +#if defined(i386) || defined(__i386__) || defined(NP2_CPU_ARCH_AMD64) +#define NP2_CPU_ARCH_IA32 +#endif /* i386 */ + +#if defined(__GNUC__) +#define GCC_ATTR_PACKED __attribute__((packed)) +#if defined(NP2_CPU_ARCH_IA32) +#define GCC_CPU_ARCH_IA32 +#endif +#if defined(NP2_CPU_ARCH_AMD64) +#define GCC_CPU_ARCH_AMD64 +#endif +#endif /* __GNUC__ */ + #ifndef NELEMENTS #define NELEMENTS(a) ((int)(sizeof(a) / sizeof(a[0]))) #endif -UINT32 gettick(); +UINT32 gettick(void); #define GETTICK() gettick() #define GETRAND() random() #define SPRINTF sprintf @@ -146,23 +198,33 @@ UINT32 gettick(); #if defined(CPUCORE_IA32) void toolkit_msgbox(const char *title, const char *msg); #define msgbox(title, msg) toolkit_msgbox(title, msg); + +#define SUPPORT_PC9821 +#define SUPPORT_CRT31KHZ +#else +#define SUPPORT_CRT15KHZ #endif -#if defined(i386) || defined(__i386__) +#if defined(NP2_CPU_ARCH_IA32) #undef MEMOPTIMIZE #define LOADINTELDWORD(a) (*((UINT32 *)(a))) #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 #define REG16 UINT +#define OPNGENARM #else #define MEMOPTIMIZE 1 #endif #define SUPPORT_EUC +#define SUPPORT_SJIS #undef SUPPORT_8BPP #define SUPPORT_16BPP @@ -170,23 +232,41 @@ 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_IDEIO -#if defined(USE_GTK) +#if USE_GTK > 0 || USE_GTK2 > 0 #define SUPPORT_S98 #define SUPPORT_KEYDISP +#define SUPPORT_SOFTKBD 0 #endif -#if defined(USE_SDL) +#if USE_SDL > 0 #define USE_SYSMENU #define SCREEN_BPP 16 +#undef SUPPORT_8BPP #undef SUPPORT_24BPP #undef SUPPORT_32BPP #endif +#if ((USE_SDL > 0) && !defined(NOSOUND)) || defined(USE_SDLAUDIO) +#define SUPPORT_JOYSTICK + +#if ((USE_SDL > 0) && !defined(NOSOUND)) || defined(USE_SDLAUDIO) +#define USE_SDL_JOYSTICK +#else +#error unknown joystick driver!!! +#endif + +#endif + /* * You could specify a complete path, e.g. "/etc/timidity.cfg", and * then specify the library directory in the configuration file.