1 /* ZPU emulation library header
3 * (c) 2011, Martin Strubel <hackfin@section5.ch>
14 #define REGISTER uint32_t
26 typedef struct _cpu_context
{
28 JTAG_CTRL jtag
; // Pointer to used JTAG controller
29 short id
; // identification tag
30 short flags
; // Interrupt flag - did we Ctrl-C ?
31 short prev_state
; // CPU's previous' state (for change detect)
35 int zpu_emuinit(CpuContext
*c
, JTAG_CTRL jtag
);
36 int zpu_getid(CpuContext
*c
, uint32_t *code
);
37 int zpu_emulation(CpuContext
*c
, int which
);
38 int zpu_resume(CpuContext
*c
, int step
);
39 int zpu_setreg(CpuContext
*c
, int regno
, REGISTER val
);
40 int zpu_getreg(CpuContext
*c
, int regno
, REGISTER
*val
);
41 int zpu_state(CpuContext
*c
, uint16_t *state
);
42 int zpu_reset(CpuContext
*c
, int mode
);
43 int zpu_getpc(CpuContext
*c
, REGISTER
*pc
);
44 void zpu_dumpstat(CpuContext
*c
);
46 int zpu_mem_read(CpuContext
*c
, ADDR addr
, unsigned int count
,
48 int zpu_mem_write(CpuContext
*c
, ADDR addr
, unsigned int count
,
49 const unsigned char *b
);