71 return gdbsys->server_->postMemAccessCallback(exc);
77 etiss_int32 exc = gdbsys->sys_->iwrite(gdbsys->sys_->handle, cpu, addr, buffer,
length);
78 return gdbsys->server_->postMemAccessCallback(exc);
85 gdbsys->server_->preDReadCallback(addr);
86 etiss_int32 exc = gdbsys->sys_->dread(gdbsys->sys_->handle, cpu, addr, buffer,
length);
87 return gdbsys->server_->postMemAccessCallback(exc);
93 gdbsys->server_->preDWriteCallback(addr);
94 etiss_int32 exc = gdbsys->sys_->dwrite(gdbsys->sys_->handle, cpu, addr, buffer,
length);
95 return gdbsys->server_->postMemAccessCallback(exc);
136 retsys->
handle = (
void *)ret;
static etiss_int32 gdb_system_call_dbg_write(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
static etiss_int32 gdb_system_call_iwrite(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
static etiss_int32 gdb_system_call_dwrite(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
struct ETISS_GDBSystem ETISS_GDBSystem
static etiss_int32 gdb_system_call_dread(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
static etiss_int32 gdb_system_call_dbg_read(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
static void gdb_system_call_syncTime(void *handle, ETISS_CPU *cpu)
static etiss_int32 gdb_system_call_iread(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint32 length)
gdb server implementation that is used as a plugin in etiss
ETISS_System * unwrap(ETISS_CPU *cpu, ETISS_System *system) override
undo wrap function call this function will be called AFTER etiss::Plugin::cleanup
ETISS_System * wrap(ETISS_CPU *cpu, ETISS_System *system) override
SystemWrapper,.
ETISS_System * unwrappedSys_
float __ovld __cnfn length(float p)
Return the length of vector p, i.e., sqrt(p.x2 + p.y 2 + ...)
basic cpu state structure needed for execution of any cpu architecture.
etiss::plugin::gdb::Server * server_
struct ETISS_System system
memory access and time synchronization functions.
etiss_int32(* dwrite)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
write data
etiss_int32(* iread)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint32 length)
used to simulate an instruction fetch.
void * handle
custom handle that will be passed to the functions of this structure
etiss_int32(* dbg_write)(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
direct debug write
etiss_int32(* dbg_read)(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
direct debug read
etiss_int32(* dread)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
read data
void(* syncTime)(void *handle, ETISS_CPU *cpu)
called after a block to synchronize the time
etiss_int32(* iwrite)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)
write instruction data over instruction bus