X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=libpcsxcore%2Fr3000a.h;h=bdb8d27cd6df1c3fd9e0206efa29f08015641d2b;hb=0f15c5bc5af3335d6445f1254d0ca546ba509c59;hp=229b14a140ab92b0dddabb16ccaa9dc9754b07ce;hpb=6c62131f8b4a923e02bb8a9d8cd9f62a90fa20a7;p=pcsx_rearmed.git diff --git a/libpcsxcore/r3000a.h b/libpcsxcore/r3000a.h index 229b14a1..bdb8d27c 100644 --- a/libpcsxcore/r3000a.h +++ b/libpcsxcore/r3000a.h @@ -29,6 +29,19 @@ extern "C" { #include "psxcounters.h" #include "psxbios.h" +enum R3000Aexception { + R3000E_Int = 0, // Interrupt + R3000E_AdEL = 4, // Address error (on load/I-fetch) + R3000E_AdES = 5, // Address error (on store) + R3000E_IBE = 6, // Bus error (instruction fetch) + R3000E_DBE = 7, // Bus error (data load) + R3000E_Syscall = 8, // syscall instruction + R3000E_Bp = 9, // Breakpoint - a break instruction + R3000E_RI = 10, // reserved instruction + R3000E_CpU = 11, // Co-Processor unusable + R3000E_Ov = 12 // arithmetic overflow +}; + enum R3000Anote { R3000ACPU_NOTIFY_CACHE_ISOLATED = 0, R3000ACPU_NOTIFY_CACHE_UNISOLATED = 1, @@ -36,11 +49,16 @@ enum R3000Anote { R3000ACPU_NOTIFY_AFTER_LOAD, }; +enum blockExecCaller { + EXEC_CALLER_BOOT, + EXEC_CALLER_HLE, +}; + typedef struct { int (*Init)(); void (*Reset)(); - void (*Execute)(); /* executes up to a break */ - void (*ExecuteBlock)(); /* executes up to a jump */ + void (*Execute)(); + void (*ExecuteBlock)(enum blockExecCaller caller); /* executes up to a jump */ void (*Clear)(u32 Addr, u32 Size); void (*Notify)(enum R3000Anote note, void *data); void (*ApplyConfig)();