ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
|
memory access and time synchronization functions. More...
#include <System.h>
Public Attributes | |
etiss_int32(* | iread )(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint32 length) |
used to simulate an instruction fetch. More... | |
etiss_int32(* | iwrite )(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
write instruction data over instruction bus More... | |
etiss_int32(* | dread )(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
read data More... | |
etiss_int32(* | dwrite )(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
write data More... | |
etiss_int32(* | dbg_read )(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
direct debug read More... | |
etiss_int32(* | dbg_write )(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
direct debug write More... | |
void(* | syncTime )(void *handle, ETISS_CPU *cpu) |
called after a block to synchronize the time More... | |
void * | handle |
custom handle that will be passed to the functions of this structure More... | |
memory access and time synchronization functions.
the "handle" parameter passed on a function call is always the "handle" variable of the structure.
to increase performance it is recommended to implement this structure directly. For convinience a etiss::System class is available (include/System.h) that can be extended and which will be automatically wrapped in an ETISS_System structure. NOTE: this structure must be packed {#pragma pack(push, 1)}
etiss_int32(* ETISS_System::dbg_read)(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
direct debug read
Definition at line 104 of file System.h.
Referenced by etiss::plugin::MemoryDeviceMapper::dbg_read(), etiss::mm::dbg_read(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::dbg_read_(), gdb_system_call_dbg_read(), etiss::plugin::gdb::Server::handlePacket(), etiss::plugin::fault::SwitchSystem::iread(), etiss::interfaces::Delegate::read(), semihostReadStructField(), semihostReadSystemMemory(), etiss::Translation::translateBlock(), etiss::wrap(), etiss::mm::DMMUWrapper::wrap(), etiss::plugin::SelectiveSysWrapper::wrap(), and etiss::plugin::gdb::Server::wrap().
etiss_int32(* ETISS_System::dbg_write)(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
direct debug write
Definition at line 108 of file System.h.
Referenced by etiss::plugin::MemoryDeviceMapper::dbg_write(), etiss::mm::dbg_write(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::dbg_write_(), gdb_system_call_dbg_write(), etiss::plugin::gdb::Server::handlePacket(), semihostWriteString(), semihostWriteSystemMemory(), etiss::wrap(), etiss::mm::DMMUWrapper::wrap(), etiss::plugin::SelectiveSysWrapper::wrap(), and etiss::plugin::gdb::Server::wrap().
etiss_int32(* ETISS_System::dread)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
read data
Definition at line 93 of file System.h.
Referenced by etiss::plugin::MemoryDeviceMapper::dread(), etiss::plugin::fault::SwitchSystem::dread(), etiss::mm::dread(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::dread_(), ETISS_System_isvalid(), etiss::plugin::MemMappedPeriph::getWrapInfo(), etiss::interfaces::Delegate::read(), etiss::wrap(), etiss::mm::DMMUWrapper::wrap(), etiss::plugin::SelectiveSysWrapper::wrap(), and etiss::plugin::gdb::Server::wrap().
etiss_int32(* ETISS_System::dwrite)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
write data
Definition at line 97 of file System.h.
Referenced by etiss::plugin::MemoryDeviceMapper::dwrite(), etiss::plugin::fault::SwitchSystem::dwrite(), etiss::mm::dwrite(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::dwrite_(), ETISS_System_isvalid(), etiss::plugin::Logger::getWrapInfo(), etiss::plugin::MemMappedPeriph::getWrapInfo(), etiss::wrap(), etiss::mm::DMMUWrapper::wrap(), etiss::plugin::SelectiveSysWrapper::wrap(), etiss::plugin::gdb::Server::wrap(), and etiss::interfaces::Delegate::write().
void * ETISS_System::handle |
custom handle that will be passed to the functions of this structure
Definition at line 116 of file System.h.
Referenced by etiss::plugin::MemoryDeviceMapper::dbg_read(), etiss::mm::dbg_read(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::dbg_read_(), etiss::plugin::MemoryDeviceMapper::dbg_write(), etiss::mm::dbg_write(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::dbg_write_(), etiss::plugin::MemoryDeviceMapper::dread(), etiss::mm::dread(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::dread_(), etiss::plugin::MemoryDeviceMapper::dwrite(), etiss::mm::dwrite(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::dwrite_(), etiss::CPUCore::execute(), gdb_system_call_dbg_read(), gdb_system_call_dbg_write(), gdb_system_call_syncTime(), etiss::plugin::Logger::getWrapInfo(), etiss::plugin::MemMappedPeriph::getWrapInfo(), etiss::plugin::gdb::Server::handlePacket(), etiss::plugin::MemoryDeviceMapper::iread(), etiss::mm::iread(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::iread_(), etiss::plugin::MemoryDeviceMapper::iwrite(), etiss::mm::iwrite(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::iwrite_(), etiss::interfaces::Delegate::read(), semihostReadStructField(), semihostReadSystemMemory(), semihostWriteString(), semihostWriteSystemMemory(), etiss::interfaces::Delegate::syncTime(), etiss::mm::syncTime(), etiss::Translation::translateBlock(), etiss::wrap(), etiss::mm::DMMUWrapper::wrap(), etiss::plugin::SelectiveSysWrapper::wrap(), etiss::plugin::gdb::Server::wrap(), and etiss::interfaces::Delegate::write().
etiss_int32(* ETISS_System::iread)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint32 length) |
used to simulate an instruction fetch.
instructions are fetched for translation with dbg_iread(4). this function is not used by default
Definition at line 84 of file System.h.
Referenced by ETISS_System_isvalid(), etiss::plugin::MemoryDeviceMapper::iread(), etiss::plugin::fault::SwitchSystem::iread(), etiss::mm::iread(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::iread_(), etiss::interfaces::Delegate::read(), etiss::wrap(), etiss::mm::DMMUWrapper::wrap(), etiss::plugin::SelectiveSysWrapper::wrap(), and etiss::plugin::gdb::Server::wrap().
etiss_int32(* ETISS_System::iwrite)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
write instruction data over instruction bus
Definition at line 88 of file System.h.
Referenced by ETISS_System_isvalid(), etiss::plugin::MemoryDeviceMapper::iwrite(), etiss::plugin::fault::SwitchSystem::iwrite(), etiss::mm::iwrite(), etiss::plugin::anonymous_namespace{MemoryDevice.cpp}::iwrite_(), etiss::wrap(), etiss::mm::DMMUWrapper::wrap(), etiss::plugin::SelectiveSysWrapper::wrap(), etiss::plugin::gdb::Server::wrap(), and etiss::interfaces::Delegate::write().
called after a block to synchronize the time
Definition at line 114 of file System.h.
Referenced by ETISS_System_isvalid(), etiss::CPUCore::execute(), gdb_system_call_syncTime(), etiss::interfaces::Delegate::syncTime(), etiss::mm::syncTime(), etiss::wrap(), etiss::mm::DMMUWrapper::wrap(), etiss::plugin::SelectiveSysWrapper::wrap(), and etiss::plugin::gdb::Server::wrap().