--- np2/x11/compiler.h 2004/03/23 15:16:43 1.15 +++ np2/x11/compiler.h 2005/02/26 14:13:01 1.28 @@ -1,3 +1,31 @@ +/* $Id: compiler.h,v 1.28 2005/02/26 14:13:01 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 -#undef SOUNDRESERVE - -#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,33 @@ #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; + +#define PTR_TO_UINT32(p) ((UINT32)GPOINTER_TO_UINT(p)) +#define UINT32_TO_PTR(v) GUINT_TO_POINTER((UINT32)(v)) + +#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 +108,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,18 +168,49 @@ 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 +#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); #define msgbox(title, msg) toolkit_msgbox(title, msg); +#ifndef IA32_PAGING_EACHSIZE +#define IA32_PAGING_EACHSIZE +#endif #define SUPPORT_PC9821 #define SUPPORT_CRT31KHZ @@ -153,12 +218,15 @@ void toolkit_msgbox(const char *title, c #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 @@ -169,6 +237,7 @@ void toolkit_msgbox(const char *title, c #endif #define SUPPORT_EUC +#define SUPPORT_SJIS #undef SUPPORT_8BPP #define SUPPORT_16BPP @@ -176,15 +245,20 @@ 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 +#undef SUPPORT_IDEIO -#if USE_GTK > 0 +#if USE_GTK > 0 || USE_GTK2 > 0 #define SUPPORT_S98 #define SUPPORT_KEYDISP +#define SUPPORT_SOFTKBD 0 #endif #if USE_SDL > 0 @@ -195,6 +269,17 @@ void toolkit_msgbox(const char *title, c #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.