55 using namespace etiss;
58 : plugin_cpu_(nullptr)
59 , plugin_system_(nullptr)
60 , plugin_arch_(nullptr)
61 , plugin_core_(nullptr)
69 , lastAssignedCoreName_(
"")
plugins for extensions to code translation and instruction execution
static __inline__ int32_t
the interface to translate instructions of and processor architecture
virtual ~CoroutinePlugin()
virtual void executionEnd(int32_t code)
called when the simulation ends but before any deinitialization is done
InterruptListenerPlugin()
virtual ~InterruptListenerPlugin()
static const unsigned REGISTERDEVICE
gets noticed of changes to special registers (e.g. mmu register etc. [depends on architecture])
InterruptListenerPlugin * tplugin_
static const unsigned COROUTINE
callback after execution of each translated block
TranslationPlugin * trplugin_
static const unsigned TRANSLATION
access to translated code during translation phase or when instruction tree is built
virtual void cleanup()
this function is called after cpu execution loop (etiss::CPUCore::execute) finished.
CoroutinePlugin * cplugin_
SystemWrapperPlugin * splugin_
static const unsigned INTERRUPTLISTENER
access to translated code
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)...
static const unsigned SYSTEMWRAPPER
can wrap/change ETISS_System structure at execution start
RegisterDevicePlugin * rplugin_
virtual ~RegisterDevicePlugin()
virtual ~SystemWrapperPlugin()
virtual void initCodeBlock(etiss::CodeBlock &) const
called before instructions are translated for the code block
virtual void finalizeInstrSet(etiss::instr::ModedInstructionSet &) const
called after all instructions have been added to allow last changes
virtual void finalizeCodeBlock(etiss::CodeBlock &) const
called after all instructions have been translated for the code block
virtual void initInstrSet(etiss::instr::ModedInstructionSet &) const
called to add instructions to the instruction set
std::string getPointerCode() const
returns a C code expression that allows to get or assign a pointer to the variable assigned to this t...
virtual void * getPluginHandle()
called to get the handle that is available in translated code via getPoinerCode()....
virtual ~TranslationPlugin()
holds etiss::instr::VariableInstructionSet instances for different modes.
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.
memory access and time synchronization functions.