32x: start reworking sheduling
[picodrive.git] / pico / pico_int.h
index c206aa8..f5b4cd4 100644 (file)
@@ -50,6 +50,7 @@ extern struct Cyclone PicoCpuCM68k, PicoCpuCS68k;
 #define SekSr     CycloneGetSr(&PicoCpuCM68k)\r
 #define SekSetStop(x) { PicoCpuCM68k.state_flags&=~1; if (x) { PicoCpuCM68k.state_flags|=1; PicoCpuCM68k.cycles=0; } }\r
 #define SekSetStopS68k(x) { PicoCpuCS68k.state_flags&=~1; if (x) { PicoCpuCS68k.state_flags|=1; PicoCpuCS68k.cycles=0; } }\r
+#define SekIsStoppedM68k() (PicoCpuCM68k.state_flags&1)\r
 #define SekIsStoppedS68k() (PicoCpuCS68k.state_flags&1)\r
 #define SekShouldInterrupt (PicoCpuCM68k.irq > (PicoCpuCM68k.srh&7))\r
 \r
@@ -83,6 +84,7 @@ extern M68K_CONTEXT PicoCpuFM68k, PicoCpuFS68k;
        PicoCpuFS68k.execinfo &= ~FM68K_HALTED; \\r
        if (x) { PicoCpuFS68k.execinfo |= FM68K_HALTED; PicoCpuFS68k.io_cycle_counter = 0; } \\r
 }\r
+#define SekIsStoppedM68k() (PicoCpuFM68k.execinfo&FM68K_HALTED)\r
 #define SekIsStoppedS68k() (PicoCpuFS68k.execinfo&FM68K_HALTED)\r
 #define SekShouldInterrupt fm68k_would_interrupt()\r
 \r
@@ -117,6 +119,7 @@ extern m68ki_cpu_core PicoCpuMM68k, PicoCpuMS68k;
        if(x) { SET_CYCLES(0); PicoCpuMS68k.stopped=STOP_LEVEL_STOP; } \\r
        else PicoCpuMS68k.stopped=0; \\r
 }\r
+#define SekIsStoppedM68k() (PicoCpuMM68k.stopped==STOP_LEVEL_STOP)\r
 #define SekIsStoppedS68k() (PicoCpuMS68k.stopped==STOP_LEVEL_STOP)\r
 #define SekShouldInterrupt (CPU_INT_LEVEL > FLAG_INT_MASK)\r
 \r
@@ -235,13 +238,13 @@ extern SH2 sh2s[2];
 \r
 #ifndef DRC_SH2\r
 # define ash2_end_run(after) if (sh2->icount > (after)) sh2->icount = after\r
-# define ash2_cycles_done() (sh2->cycles_aim - sh2->icount)\r
+# define ash2_cycles_done() (sh2->cycles_timeslice - sh2->icount)\r
 #else\r
 # define ash2_end_run(after) { \\r
    if ((sh2->sr >> 12) > (after)) \\r
      { sh2->sr &= 0xfff; sh2->sr |= (after) << 12; } \\r
 }\r
-# define ash2_cycles_done() (sh2->cycles_aim - (sh2->sr >> 12))\r
+# define ash2_cycles_done() (sh2->cycles_timeslice - (sh2->sr >> 12))\r
 #endif\r
 \r
 //#define sh2_pc(c)     (c) ? ssh2.ppc : msh2.ppc\r
@@ -712,6 +715,7 @@ void PicoReset32x(void);
 void Pico32xStartup(void);\r
 void PicoUnload32x(void);\r
 void PicoFrame32x(void);\r
+void p32x_sync_sh2s(unsigned int m68k_target);\r
 void p32x_update_irls(int nested_call);\r
 void p32x_reset_sh2s(void);\r
 \r