/** write 32 bit data value */ static void FASTCALL gdb_write32( void *data, uint32_t adr, uint32_t val) { struct gdb_stub_state *stub = (struct gdb_stub_state *)data; int breakpoint; /* pass down to the CPU's memory interface */ stub->cpu_memio->write32( stub->cpu_memio->data, adr, val); breakpoint = check_breaks_gdb( stub, stub->write_breakpoints, adr, 4, STOP_WATCHPOINT); if ( !breakpoint) check_breaks_gdb( stub, stub->access_breakpoints, adr, 4, STOP_AWATCHPOINT); }
/** read 32 bit data value */ static uint32_t FASTCALL gdb_read32( void *data, uint32_t adr) { struct gdb_stub_state *stub = (struct gdb_stub_state *)data; uint32_t value; int breakpoint; /* pass down to the CPU's memory interface */ value = stub->cpu_memio->read32( stub->cpu_memio->data, adr); breakpoint = check_breaks_gdb( stub, stub->read_breakpoints, adr, 4, STOP_RWATCHPOINT); if ( !breakpoint) check_breaks_gdb( stub, stub->access_breakpoints, adr, 4, STOP_AWATCHPOINT); return value; }
static uint16_t FASTCALL gdb_prefetch16( void *data, uint32_t adr) { struct gdb_stub_state *stub = (struct gdb_stub_state *)data; int breakpoint; breakpoint = check_breaks_gdb( stub, stub->instr_breakpoints, adr, 2, STOP_BREAKPOINT); //return stub->real_cpu_memio->prefetch16( stub->real_cpu_memio->data, adr); return 0; }
static uint16_t FASTCALL gdb_prefetch16( void *data, uint32_t adr) { struct gdb_stub_state *stub = (struct gdb_stub_state *)data; uint16_t value = 0; int breakpoint; breakpoint = check_breaks_gdb( stub, stub->instr_breakpoints, adr, 2, STOP_BREAKPOINT); if ( !breakpoint) { /* pass down to the real memory interace */ value = stub->real_cpu_memio->prefetch16( stub->real_cpu_memio->data, adr); } return value; }