|
ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
|
SystemWrapperPlugin to redirect data reads and writes to custom callbacks. More...
#include <MemMappedPeriph.h>


Classes | |
| struct | CustomHandle |
Public Member Functions | |
| virtual MappedMemory | getMappedMem () const =0 |
| Defines in which memory region to map this peripheral. | |
| virtual etiss_uint8 | read8 (etiss_uint64 addr) |
| virtual etiss_uint16 | read16 (etiss_uint64 addr) |
| virtual etiss_uint32 | read32 (etiss_uint64 addr) |
| virtual etiss_uint64 | read64 (etiss_uint64 addr) |
| virtual void | write8 (etiss_uint64 addr, etiss_uint8 val) |
| virtual void | write16 (etiss_uint64 addr, etiss_uint16 val) |
| virtual void | write32 (etiss_uint64 addr, etiss_uint32 val) |
| virtual void | write64 (etiss_uint64 addr, etiss_uint64 val) |
| ETISS_System | getWrapInfo (ETISS_System *origSystem) final |
| Defines which System functions to wrap. | |
Public Member Functions inherited from etiss::plugin::SelectiveSysWrapper | |
| ETISS_System * | wrap (ETISS_CPU *cpu, ETISS_System *system) final |
| change/wrap the passed system structure. | |
| ETISS_System * | unwrap (ETISS_CPU *cpu, ETISS_System *system) final |
| undo wrap function call this function will be called AFTER etiss::Plugin::cleanup | |
Public Member Functions inherited from etiss::SystemWrapperPlugin | |
| SystemWrapperPlugin () | |
| virtual | ~SystemWrapperPlugin () |
Public Member Functions inherited from etiss::Plugin | |
| virtual | ~Plugin () |
| unsigned | getType () |
| InterruptListenerPlugin * | getInterruptListenerPlugin () |
| CoroutinePlugin * | getCoroutinePlugin () |
| SystemWrapperPlugin * | getSystemWrapperPlugin () |
| RegisterDevicePlugin * | getRegisterDevicePlugin () |
| TranslationPlugin * | getTranslationPlugin () |
| std::string | getPluginName () const |
| const std::string & | getLastAssignedCoreName () |
| std::string | toString () const |
Public Member Functions inherited from etiss::ToString | |
| ToString () | |
| virtual | ~ToString () |
Private Attributes | |
| CustomHandle | customHandle_ |
Additional Inherited Members | |
Static Public Attributes inherited from etiss::Plugin | |
| static const unsigned | INTERRUPTLISTENER = 1 << 0 |
| access to translated code | |
| static const unsigned | COROUTINE = 1 << 1 |
| callback after execution of each translated block | |
| static const unsigned | SYSTEMWRAPPER = 1 << 2 |
| can wrap/change ETISS_System structure at execution start | |
| static const unsigned | REGISTERDEVICE |
| gets noticed of changes to special registers (e.g. mmu register etc. [depends on architecture]) | |
| static const unsigned | TRANSLATION |
| access to translated code during translation phase or when instruction tree is built | |
Protected Member Functions inherited from etiss::Plugin | |
| Plugin (unsigned type=0) | |
| virtual std::string | _getPluginName () const =0 |
| virtual void | init (ETISS_CPU *cpu, ETISS_System *system, CPUArch *arch) |
| this function is called before the plugin is used in the cpu execution loop (etiss::CPUCore::execute). | |
| virtual void | cleanup () |
| this function is called after cpu execution loop (etiss::CPUCore::execute) finished. | |
| void | setCorrespondingCPUCoreName (std::string name) |
| virtual void | addedToCPUCore (etiss::CPUCore *core) |
| called as soon a plugin has been added to its CPUCore. | |
| virtual void | removedFromCPUCore (etiss::CPUCore *core) |
| called as soon a plugin has been removed from its CPUCore. | |
Protected Attributes inherited from etiss::Plugin | |
| ETISS_CPU * | plugin_cpu_ |
| holds a pointer to the cpu structure. will be set before init call and after cleanup call | |
| ETISS_System * | plugin_system_ |
| holds a pointer to the system structure. | |
| CPUArch * | plugin_arch_ |
| holds a pointer to the CPUArch instance. will be set before init call and after cleanup call | |
| CPUCore * | plugin_core_ |
| holds a pointer to the associated CPUCore instance. | |
SystemWrapperPlugin to redirect data reads and writes to custom callbacks.
Definition at line 37 of file MemMappedPeriph.h.
|
pure virtual |
Defines in which memory region to map this peripheral.
Referenced by getWrapInfo().

|
finalvirtual |
Defines which System functions to wrap.
Initialize an ETISS_System struct to zero and only set the fields of the functions that this plugin should wrap. The handle field may be set to a custom data structure that will be passed to the wrapped functions as first argument.
| origSystem | The System that is being wrapped. Must be stored by the plugin to fall back to the parent System. |
Implements etiss::plugin::SelectiveSysWrapper.
Definition at line 73 of file MemMappedPeriph.cpp.
References etiss::plugin::MemMappedPeriph::CustomHandle::base, customHandle_, etiss::plugin::dread(), ETISS_System::dread, etiss::plugin::dwrite(), ETISS_System::dwrite, etiss::plugin::MemMappedPeriph::CustomHandle::end, getMappedMem(), ETISS_System::handle, etiss::plugin::MemMappedPeriph::CustomHandle::mmp, and etiss::plugin::MemMappedPeriph::CustomHandle::origSys.

|
inlinevirtual |
Definition at line 55 of file MemMappedPeriph.h.
References etiss::plugin::unimpl_read().

|
inlinevirtual |
Definition at line 56 of file MemMappedPeriph.h.
References etiss::plugin::unimpl_read().

|
inlinevirtual |
Definition at line 57 of file MemMappedPeriph.h.
References etiss::plugin::unimpl_read().

|
inlinevirtual |
Definition at line 54 of file MemMappedPeriph.h.
References etiss::plugin::unimpl_read().

|
inlinevirtual |
Definition at line 59 of file MemMappedPeriph.h.
References etiss::plugin::unimpl_write().

|
inlinevirtual |
Definition at line 60 of file MemMappedPeriph.h.
References etiss::plugin::unimpl_write().

|
inlinevirtual |
Definition at line 61 of file MemMappedPeriph.h.
References etiss::plugin::unimpl_write().

|
inlinevirtual |
Definition at line 58 of file MemMappedPeriph.h.
References etiss::plugin::unimpl_write().

|
private |
Definition at line 66 of file MemMappedPeriph.h.
Referenced by getWrapInfo().