ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
Public Attributes | List of all members
ETISS_System Struct Reference

memory access and time synchronization functions. More...

#include <System.h>

Collaboration diagram for ETISS_System:
Collaboration graph
[legend]

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...
 

Detailed Description

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)}

See also
include/SystemWrapper.h
src/SystemWrapper.cpp

Definition at line 77 of file System.h.

Member Data Documentation

◆ dbg_read

etiss_int32(* ETISS_System::dbg_read)(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)

◆ dbg_write

etiss_int32(* ETISS_System::dbg_write)(void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)

◆ dread

etiss_int32(* ETISS_System::dread)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)

◆ dwrite

etiss_int32(* ETISS_System::dwrite)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)

◆ handle

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().

◆ iread

etiss_int32(* ETISS_System::iread)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint32 length)

◆ iwrite

etiss_int32(* ETISS_System::iwrite)(void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length)

◆ syncTime

void(* ETISS_System::syncTime)(void *handle, ETISS_CPU *cpu)

The documentation for this struct was generated from the following file: