|
ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
|
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 () |
Public Member Functions inherited from etiss::SimpleSystem | |
| 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. | |
Public Member Functions inherited from etiss::System | |
| 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 23 of file VirtualStructMemory.h.
| typedef std::map<uint64_t, std::pair<etiss::VirtualStruct::Field * , size_t > > etiss::plugin::VirtualStructMemory::mapping_t |
Definition at line 42 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 15 of file VirtualStructMemory.cpp.
References endaddr_, memmap_, references, startaddr_, uint64_t, and etiss::VirtualStruct::Field::width_.
|
virtual |
Definition at line 54 of file VirtualStructMemory.cpp.
|
inline |
Definition at line 50 of file VirtualStructMemory.h.
References endaddr_.
| std::set< etiss::VirtualStruct::Field * > etiss::plugin::VirtualStructMemory::getMappedFields | ( | ) |
Definition at line 116 of file VirtualStructMemory.cpp.
References memmap_.
|
inline |
returns the internal mapping
Definition at line 46 of file VirtualStructMemory.h.
References memmap_.
|
virtual |
Implements etiss::SimpleSystem.
Definition at line 59 of file VirtualStructMemory.cpp.
References memmap_, etiss::VirtualStruct::Field::read(), uint64_t, and uint8_t.

|
inline |
Definition at line 49 of file VirtualStructMemory.h.
References startaddr_.
|
virtual |
Implements etiss::SimpleSystem.
Definition at line 81 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 56 of file VirtualStructMemory.h.
Referenced by endAddr(), and VirtualStructMemory().
| const etiss::VirtualStruct& etiss::plugin::VirtualStructMemory::mem_ |
Definition at line 40 of file VirtualStructMemory.h.
|
private |
Definition at line 57 of file VirtualStructMemory.h.
Referenced by getMappedFields(), getMapping(), read(), VirtualStructMemory(), and write().
|
private |
Definition at line 58 of file VirtualStructMemory.h.
Referenced by VirtualStructMemory().
|
private |
Definition at line 54 of file VirtualStructMemory.h.
Referenced by startAddr(), and VirtualStructMemory().