improve 64bit portability
[picodrive.git] / cpu / fame / fame.h
index d534924..aba9316 100644 (file)
@@ -9,6 +9,12 @@
 #ifndef __FAME_H__\r
 #define __FAME_H__\r
 \r
+// uintptr_t\r
+#include <stdlib.h>\r
+#ifndef _MSC_VER\r
+#include <stdint.h>\r
+#endif\r
+\r
 #ifdef __cplusplus\r
 extern "C" {\r
 #endif\r
@@ -125,8 +131,9 @@ typedef struct
 \r
        unsigned int   Opcode;\r
        signed int     cycles_needed;\r
+\r
        unsigned short *PC;\r
-       unsigned long  BasePC;\r
+       uintptr_t      BasePC;\r
        unsigned int   flag_C;\r
        unsigned int   flag_V;\r
        unsigned int   flag_NotZ;\r
@@ -136,10 +143,19 @@ typedef struct
        unsigned int   flag_S;\r
        unsigned int   flag_I;\r
 \r
-       unsigned long  Fetch[M68K_FETCHBANK1];\r
+       unsigned char  not_polling;\r
+       unsigned char  pad[3];\r
+\r
+       uintptr_t      Fetch[M68K_FETCHBANK1];\r
 } M68K_CONTEXT;\r
 \r
-extern M68K_CONTEXT *g_m68kcontext;\r
+typedef enum\r
+{\r
+       fm68k_reason_emulate = 0,\r
+       fm68k_reason_init,\r
+       fm68k_reason_idle_install,\r
+       fm68k_reason_idle_remove,\r
+} fm68k_call_reason;\r
 \r
 /************************/\r
 /* Function definition  */\r
@@ -147,12 +163,15 @@ extern M68K_CONTEXT *g_m68kcontext;
 \r
 /* General purpose functions */\r
 void fm68k_init(void);\r
-int  fm68k_reset(void);\r
-int  fm68k_emulate(int n, int dualcore, int idle_mode);\r
-int  fm68k_would_interrupt(void); // to be called from fm68k_emulate()\r
+int  fm68k_reset(M68K_CONTEXT *ctx);\r
+int  fm68k_emulate(M68K_CONTEXT *ctx, int n, fm68k_call_reason reason);\r
+int  fm68k_would_interrupt(M68K_CONTEXT *ctx); // to be called from fm68k_emulate()\r
 \r
-unsigned fm68k_get_pc(M68K_CONTEXT *context);\r
+unsigned int fm68k_get_pc(const M68K_CONTEXT *ctx);\r
 \r
+// PICODRIVE_HACK\r
+int fm68k_idle_install(void);\r
+int fm68k_idle_remove(void);\r
 \r
 #ifdef __cplusplus\r
 }\r