cdrom: get rid of cdrPlayInterrupt
[pcsx_rearmed.git] / libpcsxcore / r3000a.h
index 399f9b6..ea6f0e7 100644 (file)
@@ -29,12 +29,20 @@ extern "C" {
 #include "psxcounters.h"
 #include "psxbios.h"
 
+enum {
+       R3000ACPU_NOTIFY_CACHE_ISOLATED = 0,
+       R3000ACPU_NOTIFY_CACHE_UNISOLATED = 1,
+       R3000ACPU_NOTIFY_DMA3_EXE_LOAD = 2
+};
+
 typedef struct {
        int  (*Init)();
        void (*Reset)();
        void (*Execute)();              /* executes up to a break */
        void (*ExecuteBlock)(); /* executes up to a jump */
        void (*Clear)(u32 Addr, u32 Size);
+       void (*Notify)(int note, void *data);
+       void (*ApplyConfig)();
        void (*Shutdown)();
 } R3000Acpu;
 
@@ -43,7 +51,7 @@ extern R3000Acpu psxInt;
 extern R3000Acpu psxRec;
 
 typedef union {
-#if defined(__BIGENDIAN__)
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
        struct { u8 h3, h2, h, l; } b;
        struct { s8 h3, h2, h, l; } sb;
        struct { u16 h, l; } w;
@@ -156,7 +164,7 @@ enum {
        PSXINT_NEWDRC_CHECK,
        PSXINT_RCNT,
        PSXINT_CDRLID,
-       PSXINT_CDRPLAY,
+       PSXINT_CDRPLAY_OLD,     /* unused */
        PSXINT_SPU_UPDATE,
        PSXINT_COUNT
 };
@@ -181,6 +189,11 @@ typedef struct {
        u32 cycle;
        u32 interrupt;
        struct { u32 sCycle, cycle; } intCycle[32];
+       u32 gteBusyCycle;
+       u32 muldivBusyCycle;
+       // warning: changing anything in psxRegisters requires update of all
+       // asm in libpcsxcore/new_dynarec/, but this member can be replaced
+       u32 reserved[2];
 } psxRegisters;
 
 extern psxRegisters psxRegs;
@@ -204,7 +217,7 @@ void new_dyna_freeze(void *f, int mode);
        } \
 }
 
-#if defined(__BIGENDIAN__)
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 
 #define _i32(x) *(s32 *)&x
 #define _u32(x) x