43 #ifndef ETISS_PLUGIN_VIRTUALSTRUCTMEMORY_H
44 #define ETISS_PLUGIN_VIRTUALSTRUCTMEMORY_H
63 bool littleendian =
true);
96 std::list<std::shared_ptr<VirtualStruct::Field>>
references;
static __inline__ uint64_t
A simple system, that implements the etiss::System interface.
a Field instance represents e.g.
abstract representation of an module of a simulation which could be a embedded device of the cpu of a...
allows to read/write to a virtual structure as if it is a memory.
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)
VirtualStructMemory(const etiss::VirtualStruct &str, std::function< uint64_t(etiss::VirtualStruct::Field *, bool &)> mountPoint, bool littleendian=true)
const mapping_t & getMapping()
returns the internal mapping
const etiss::VirtualStruct & mem_
std::list< std::shared_ptr< VirtualStruct::Field > > references
std::map< uint64_t, std::pair< etiss::VirtualStruct::Field *, size_t > > mapping_t
uint64_t endaddr_
excluded
std::set< etiss::VirtualStruct::Field * > getMappedFields()
virtual ~VirtualStructMemory()
conatins a convinience class that can be wrapped as a ETISS_System structure
Page Table Entry (PTE) defines the composition of Page Frame Number (PFN) and relavant flags.
basic cpu state structure needed for execution of any cpu architecture.