ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
|
SystemWrapperPlugin that only wraps some of the System calls. More...
#include <SelectiveSysWrapper.h>
Additional Inherited Members | |
Static Public Attributes inherited from etiss::Plugin | |
static const unsigned | INTERRUPTLISTENER = 1 << 0 |
access to translated code More... | |
static const unsigned | COROUTINE = 1 << 1 |
callback after execution of each translated block More... | |
static const unsigned | SYSTEMWRAPPER = 1 << 2 |
can wrap/change ETISS_System structure at execution start More... | |
static const unsigned | REGISTERDEVICE |
gets noticed of changes to special registers (e.g. mmu register etc. [depends on architecture]) More... | |
static const unsigned | TRANSLATION |
access to translated code during translation phase or when instruction tree is built More... | |
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). More... | |
virtual void | cleanup () |
this function is called after cpu execution loop (etiss::CPUCore::execute) finished. More... | |
void | setCorrespondingCPUCoreName (std::string name) |
virtual void | addedToCPUCore (etiss::CPUCore *core) |
called as soon a plugin has been added to its CPUCore. More... | |
virtual void | removedFromCPUCore (etiss::CPUCore *core) |
called as soon a plugin has been removed from its CPUCore. More... | |
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 More... | |
ETISS_System * | plugin_system_ |
holds a pointer to the system structure. More... | |
CPUArch * | plugin_arch_ |
holds a pointer to the CPUArch instance. will be set before init call and after cleanup call More... | |
CPUCore * | plugin_core_ |
holds a pointer to the associated CPUCore instance. More... | |
SystemWrapperPlugin that only wraps some of the System calls.
Definition at line 13 of file SelectiveSysWrapper.h.
|
pure virtual |
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. |
Implemented in etiss::plugin::MemMappedPeriph, and etiss::plugin::Logger.
Referenced by wrap().
|
finalvirtual |
undo wrap function call this function will be called AFTER etiss::Plugin::cleanup
Implements etiss::SystemWrapperPlugin.
Definition at line 106 of file SelectiveSysWrapper.cpp.
References ETISS_CPU::_etiss_private_handle_, and get_metrics::h.
|
finalvirtual |
change/wrap the passed system structure.
the returned value will be used as the current system this function will be called BEFORE etiss::Plugin::init
Implements etiss::SystemWrapperPlugin.
Definition at line 16 of file SelectiveSysWrapper.cpp.
References ETISS_CPU::_etiss_private_handle_, ETISS_System::dbg_read, ETISS_System::dbg_write, ETISS_System::dread, ETISS_System::dwrite, getWrapInfo(), ETISS_System::handle, ETISS_System::iread, ETISS_System::iwrite, etiss::jitFiles(), and ETISS_System::syncTime.