ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
|
allows to read/write to a virtual structure as if it is a memory. More...
#include <VirtualStructMemory.h>
Public Types | |
typedef std::map< uint64_t, std::pair< etiss::VirtualStruct::Field *, size_t > > | mapping_t |
Public Member Functions | |
VirtualStructMemory (const etiss::VirtualStruct &str, std::function< uint64_t(etiss::VirtualStruct::Field *, bool &)> mountPoint, bool littleendian=true) | |
virtual | ~VirtualStructMemory () |
virtual bool | read (bool debug, ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len) |
virtual bool | write (bool debug, ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len) |
const mapping_t & | getMapping () |
returns the internal mapping | |
std::set< etiss::VirtualStruct::Field * > | getMappedFields () |
uint64_t | startAddr () |
uint64_t | endAddr () |
![]() | |
virtual | ~SimpleSystem () |
virtual etiss::int32 | iread (ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint32 len) |
Instruction read operation. | |
virtual etiss::int32 | iwrite (ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len) |
Instruction write operation. | |
virtual etiss::int32 | dread (ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len) |
Data read operation. | |
virtual etiss::int32 | dwrite (ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len) |
Data write operation. | |
virtual etiss::int32 | dbg_read (etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len) |
Debug read operation. | |
virtual etiss::int32 | dbg_write (etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len) |
Debug write operation. | |
virtual void | syncTime (ETISS_CPU *cpu) |
Synchronize simulation time. | |
![]() | |
virtual | ~System () |
Public Attributes | |
const etiss::VirtualStruct & | mem_ |
Private Attributes | |
uint64_t | startaddr_ |
uint64_t | endaddr_ |
excluded | |
mapping_t | memmap_ |
std::list< std::shared_ptr< VirtualStruct::Field > > | references |
allows to read/write to a virtual structure as if it is a memory.
Any mapped field is addressed as little endian.
Definition at line 58 of file VirtualStructMemory.h.
typedef std::map<uint64_t, std::pair<etiss::VirtualStruct::Field * , size_t > > etiss::plugin::VirtualStructMemory::mapping_t |
Definition at line 77 of file VirtualStructMemory.h.
etiss::plugin::VirtualStructMemory::VirtualStructMemory | ( | const etiss::VirtualStruct & | str, |
std::function< uint64_t(etiss::VirtualStruct::Field *, bool &)> | mountPoint, | ||
bool | littleendian = true |
||
) |
Definition at line 50 of file VirtualStructMemory.cpp.
References endaddr_, memmap_, references, startaddr_, uint64_t, and etiss::VirtualStruct::Field::width_.
|
virtual |
Definition at line 84 of file VirtualStructMemory.cpp.
|
inline |
Definition at line 88 of file VirtualStructMemory.h.
References endaddr_.
std::set< etiss::VirtualStruct::Field * > etiss::plugin::VirtualStructMemory::getMappedFields | ( | ) |
Definition at line 146 of file VirtualStructMemory.cpp.
References memmap_.
|
inline |
returns the internal mapping
Definition at line 81 of file VirtualStructMemory.h.
References memmap_.
|
virtual |
Implements etiss::SimpleSystem.
Definition at line 89 of file VirtualStructMemory.cpp.
References memmap_, etiss::VirtualStruct::Field::read(), uint64_t, and uint8_t.
|
inline |
Definition at line 87 of file VirtualStructMemory.h.
References startaddr_.
|
virtual |
Implements etiss::SimpleSystem.
Definition at line 111 of file VirtualStructMemory.cpp.
References memmap_, etiss::VirtualStruct::Field::name_, etiss::VirtualStruct::Field::prettyname_, etiss::VirtualStruct::Field::read(), uint64_t, uint8_t, and etiss::VirtualStruct::Field::write().
|
private |
excluded
Definition at line 94 of file VirtualStructMemory.h.
Referenced by endAddr(), and VirtualStructMemory().
const etiss::VirtualStruct& etiss::plugin::VirtualStructMemory::mem_ |
Definition at line 75 of file VirtualStructMemory.h.
|
private |
Definition at line 95 of file VirtualStructMemory.h.
Referenced by getMappedFields(), getMapping(), read(), VirtualStructMemory(), and write().
|
private |
Definition at line 96 of file VirtualStructMemory.h.
Referenced by VirtualStructMemory().
|
private |
Definition at line 92 of file VirtualStructMemory.h.
Referenced by startAddr(), and VirtualStructMemory().