ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
etiss::MemoryManipulationSystem Class Reference

Simple etiss:System implementation for testing. More...

#include <MemoryManipulationSystem.h>

Inheritance diagram for etiss::MemoryManipulationSystem:
Inheritance graph
[legend]
Collaboration diagram for etiss::MemoryManipulationSystem:
Collaboration graph
[legend]

Public Member Functions

 MemoryManipulationSystem (const std::string &name="system")
 Constructor takes name for reference of this class as a name Injector.
 
const std::string & getName ()
 get virtual struct associated name
 
std::shared_ptr< etiss::VirtualStructgetStruct (void)
 get virtual struct
 
void init_manipulation (std::shared_ptr< etiss::VirtualStructSupport > vs_parent)
 initialize this virtual struct and mount it to cpu_core
 
- Public Member Functions inherited from etiss::VirtualStructSupport
virtual ~VirtualStructSupport ()
 
- Public Member Functions inherited from etiss::SimpleMemSystem
 SimpleMemSystem (void)
 
virtual ~SimpleMemSystem (void)
 
etiss::int32 iread (ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint32 len)
 Instruction read operation.
 
etiss::int32 iwrite (ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len)
 Instruction write operation.
 
etiss::int32 dread (ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len)
 Data read operation.
 
etiss::int32 dwrite (ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len)
 Data write operation.
 
etiss::int32 dbg_read (etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len)
 Debug read operation.
 
etiss::int32 dbg_write (etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len)
 Debug write operation.
 
void syncTime (ETISS_CPU *cpu)
 Synchronize simulation time.
 
void init_memory ()
 
void load_elf ()
 
void load_segments (void)
 
etiss::uint64 get_startaddr (void)
 
void add_memsegment (std::unique_ptr< MemSegment > &mseg, const void *raw_data, size_t file_size_bytes)
 
- Public Member Functions inherited from etiss::System
virtual ~System ()
 

Private Attributes

std::string name_
 
etiss::uint8 arch_width_
 
std::shared_ptr< etiss::VirtualStructvsystem_
 
std::unique_ptr< etiss::MemoryWordManipulatorBasemem_manipulator_
 

Additional Inherited Members

- Protected Member Functions inherited from etiss::SimpleMemSystem
template<bool write>
etiss::int32 dbus_access (ETISS_CPU *cpu, etiss::uint64 addr, etiss::uint8 *buf, etiss::uint32 len)
 

Detailed Description

Simple etiss:System implementation for testing.

Definition at line 111 of file MemoryManipulationSystem.h.

Constructor & Destructor Documentation

◆ MemoryManipulationSystem()

MemoryManipulationSystem::MemoryManipulationSystem ( const std::string &  name = "system")

Constructor takes name for reference of this class as a name Injector.

Definition at line 197 of file MemoryManipulationSystem.cpp.

Member Function Documentation

◆ getName()

const std::string & etiss::MemoryManipulationSystem::getName ( )
inlinevirtual

get virtual struct associated name

Implements etiss::VirtualStructSupport.

Definition at line 119 of file MemoryManipulationSystem.h.

References name_.

Referenced by init_manipulation().

Here is the caller graph for this function:

◆ getStruct()

std::shared_ptr< VirtualStruct > MemoryManipulationSystem::getStruct ( void  )
virtual

get virtual struct

Implements etiss::VirtualStructSupport.

Definition at line 25 of file MemoryManipulationSystem.cpp.

References etiss::VirtualStruct::allocate(), and vsystem_.

Referenced by init_manipulation().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init_manipulation()

void MemoryManipulationSystem::init_manipulation ( std::shared_ptr< etiss::VirtualStructSupport vs_parent)

initialize this virtual struct and mount it to cpu_core

Definition at line 34 of file MemoryManipulationSystem.cpp.

References etiss::cfg(), etiss::FATALERROR, etiss::Configuration::get(), getName(), getStruct(), etiss::log(), mem_manipulator_, uint8_t, and etiss::VERBOSE.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ arch_width_

etiss::uint8 etiss::MemoryManipulationSystem::arch_width_
private

Definition at line 129 of file MemoryManipulationSystem.h.

◆ mem_manipulator_

std::unique_ptr<etiss::MemoryWordManipulatorBase> etiss::MemoryManipulationSystem::mem_manipulator_
private

Definition at line 131 of file MemoryManipulationSystem.h.

Referenced by init_manipulation().

◆ name_

std::string etiss::MemoryManipulationSystem::name_
private

Definition at line 128 of file MemoryManipulationSystem.h.

Referenced by getName().

◆ vsystem_

std::shared_ptr<etiss::VirtualStruct> etiss::MemoryManipulationSystem::vsystem_
private

Definition at line 130 of file MemoryManipulationSystem.h.

Referenced by getStruct().


The documentation for this class was generated from the following files: