X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=cpu%2Fsh2%2Fsh2.h;h=e15259d5433e272cf16dabbb7bc5c0bab38802b0;hb=d4d626658a7a999f48009f408b4a22d280ab80ea;hp=074b142eff314b234b4c4416bfaf6fdb620396ae;hpb=e05b81fc5b3f640496795ced5d893ece4cc51c2d;p=picodrive.git diff --git a/cpu/sh2/sh2.h b/cpu/sh2/sh2.h index 074b142..e15259d 100644 --- a/cpu/sh2/sh2.h +++ b/cpu/sh2/sh2.h @@ -33,6 +33,11 @@ typedef struct SH2_ // drc stuff int drc_tmp; // 70 int irq_cycles; + void *p_bios; // convenience pointers + void *p_da; + void *p_sdram; // 80 + void *p_rom; + unsigned int pdb_io_csum[2]; // interpreter stuff int icount; // cycles left in current timeslice @@ -56,12 +61,17 @@ extern SH2 *sh2; // active sh2. XXX: consider removing int sh2_init(SH2 *sh2, int is_slave); void sh2_finish(SH2 *sh2); void sh2_reset(SH2 *sh2); -void sh2_irl_irq(SH2 *sh2, int level); +void sh2_irl_irq(SH2 *sh2, int level, int nested_call); void sh2_internal_irq(SH2 *sh2, int level, int vector); void sh2_do_irq(SH2 *sh2, int level, int vector); +void sh2_pack(const SH2 *sh2, unsigned char *buff); +void sh2_unpack(SH2 *sh2, const unsigned char *buff); void sh2_execute(SH2 *sh2, int cycles); +// regs, pending_int*, cycles, reserved +#define SH2_STATE_SIZE ((24 + 2 + 2 + 12) * 4) + // pico memhandlers // XXX: move somewhere else unsigned int REGPARM(2) p32x_sh2_read8(unsigned int a, SH2 *sh2);