X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fr3000a.h;h=ea6f0e75f44b4b80656a95e1087ae06b4429d9db;hb=d9a0249331e3f0da8820e158baaafa69e3a534ac;hp=399f9b63f9abe54b81b7210ef308f74feb3d661f;hpb=41e82ad46e60f9c3291ff81ebe4a07512b1194c5;p=pcsx_rearmed.git diff --git a/libpcsxcore/r3000a.h b/libpcsxcore/r3000a.h index 399f9b63..ea6f0e75 100644 --- a/libpcsxcore/r3000a.h +++ b/libpcsxcore/r3000a.h @@ -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