|
ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
|
forwards: include/jit/* More...
Namespaces | |
| namespace | benchmark |
| namespace | error |
| namespace | fault |
| namespace | fmt |
| namespace | instr |
| namespace | interfaces |
| namespace | internal |
| namespace | mm |
| namespace | plugin |
| namespace | py |
| namespace | string |
Classes | |
| class | Benchmark |
| class | BlockLink |
| structure to store additional information with a function pointer to the translated code More... | |
| class | CodeBlock |
| A list of CodeSets. More... | |
| class | CodePart |
| Contains a small code snipped. More... | |
| class | CodeSet |
| A set of CodeParts. More... | |
| class | ConfigAnnouncer |
| simple class to add a configuration option to the list of known options More... | |
| class | Configuration |
| simple class to hold configuration options More... | |
| class | CoroutinePlugin |
| this plugin will be called before a block is executed. More... | |
| class | CPUArch |
| the interface to translate instructions of and processor architecture More... | |
| class | CPUArchCPUManipulation |
| interface for cpu structure access. More... | |
| class | CPUArchDefaultPlugins |
| provides common basic plugins More... | |
| class | CPUArchRegListenerInterface |
| allows to inform plugins about changes to a register that is present in the cpu structure. More... | |
| class | CPUCore |
| CPUCore is responsible for the simulation of a CPU core in ETISS. More... | |
| class | DataSheetAccurateTiming |
| struct | Default_Clock |
| class | ExpandingNativeStack |
| implements a stack that may only grow (if needed) and can only contain native types since no destructor / contructor / initialization is called. More... | |
| class | FixedSizeHashMap |
| class | Initializer |
| Wrapper for the initialize and shutdown of the ETISS environment. More... | |
| class | InterruptEnable |
| class | InterruptHandler |
| class that handles interrupt signaling and checking. More... | |
| class | InterruptListenerPlugin |
| class | InterruptVector |
| interface to set interrupt bits More... | |
| class | JIT |
| compiler interface for just in time compilation of generated C code More... | |
| class | LibraryInterface |
| interface class for libraries. More... | |
| class | LLVMJIT |
| class | MappedInterruptEnable |
| class | MappedInterruptVector |
| template implementation of an InterruptVector that uses integer variables to store interrupt bit values and to read interrupt masks. More... | |
| class | MemoryManipulationSystem |
| Simple etiss:System implementation for testing. More... | |
| class | MemoryWordManipulator |
Memory word faulter class template word_t. More... | |
| class | MemoryWordManipulatorBase |
| Memory word faulter base class. More... | |
| class | MemSegment |
| class | ObjectPool |
| prealloc_inc defines the number of objects that is availabe within ObjectPools memory; default: 100 More... | |
| class | Plugin |
| base plugin class that provides access to different plugin functions if present More... | |
| struct | pointerHash |
| class | RefCountedObject |
| base refcount class More... | |
| class | RegisterDevicePlugin |
| RegisterDevicePlugin::changedRegister is called if a supported register has been changed. More... | |
| class | RegisterPart |
| abstract description of needed or affected register bits. More... | |
| class | RegisterSet |
| set of register parts. More... | |
| class | SimpleMemSystem |
| simple etiss:System implementation for testing More... | |
| class | SimpleSystem |
| A simple system, that implements the etiss::System interface. More... | |
| class | SourceCodeLocation |
| simple class that store source location information. More... | |
| class | System |
| System Interface for the basic system IO operations and time synchronization. More... | |
| class | SystemWrapperPlugin |
| this plugin allows to wrap the ETISS_System interface More... | |
| class | ToString |
| Marker interface for toString() support. More... | |
| class | Translation |
| class | TranslationPlugin |
| allows to add code to the translation of instructions More... | |
| class | VirtualStruct |
| abstract representation of an module of a simulation which could be a embedded device of the cpu of an embedded device. More... | |
| class | VirtualStructSupport |
| class | VSSync |
| used for synchronization of the tree of virtual structs. More... | |
Typedefs | |
| typedef void * | ModuleHandle |
| Represents a module handle. Analogous to Windows this represents the module base address, not a dlopen handle! | |
| typedef etiss::int32(* | ExecBlockCall) (ETISS_CPU *cpu, ETISS_System *system, void **plugin_pointers) |
Enumerations | |
| enum | InterruptType { EDGE_TRIGGERED = 1 , LEVEL_TRIGGERED } |
| interrupt types supported by the default implementation More... | |
| enum | Verbosity { SILENT = 0 , FATALERROR = 1 , ERROR = 2 , WARNING = 3 , INFO = 4 , VERBOSE = 5 } |
| Enumeration type for the log levels. More... | |
| enum | endian_t : uint32_t { _LITTLE_ENDIAN_ = ETISS_LITTLE_ENDIAN , _BIG_ENDIAN_ = ETISS_BIG_ENDIAN , _UNKNOWN_ENDIAN_ = ETISS_UNKNOWN_ENDIAN } |
| Enumeration type for the endianness. More... | |
Functions | |
| std::set< std::string > | listCPUArchs () |
| Create a set with all identifier names of the known CPUArch plug-ins. | |
| std::set< std::string > | listJITs () |
| Create a set with all identifier names of the known JIT plug-ins. | |
| std::set< std::string > | listPlugins () |
| Create a set with all identifier names of the known plug-ins. | |
| void | preloadLibraries () |
| Search and try to load libraries. | |
| std::shared_ptr< JIT > | getJIT (std::string name, std::map< std::string, std::string > options=std::map< std::string, std::string >()) |
| Get a present JIT plug-in by name. | |
| std::shared_ptr< CPUArch > | getCPUArch (std::string name, std::map< std::string, std::string > options=std::map< std::string, std::string >()) |
| Get a present CPUArch plug-in by name. | |
| std::shared_ptr< Plugin > | getPlugin (std::string name, std::map< std::string, std::string > options=std::map< std::string, std::string >()) |
| Get a present Plugin plug-in by name. | |
| bool | loadLibrary (std::string path, std::string name) |
| Load a library. | |
| void | addLibrary (std::shared_ptr< etiss::LibraryInterface > libInterface) |
| Add a LibraryInterface to the ETISS environment. | |
| std::set< std::string > | listLibraries () |
| Create a set with strings of the library names and some information appended in square brackets. | |
| std::set< std::string > | listLibraryPrefixes () |
| Create a set with strings of the library names. | |
| void | initialize (std::vector< std::string > &args) |
| Initialize and configure ETISS. | |
| std::shared_ptr< etiss::JIT > | getDefaultJIT () |
| Get the default JIT implementation. | |
| void | initialize_virtualstruct (std::shared_ptr< etiss::CPUCore > cpu_core) |
Initialize and configure etiss::VirtualStruct root with etiss::CPUCore cpu_core. | |
| void | initialize_virtualstruct (std::shared_ptr< etiss::CPUCore > cpu_core, std::function< bool(const etiss::fault::Fault &, const etiss::fault::Action &, std::string &)> const &fcustom_action) |
Extension of etiss::initialize_virtualstruct(
std::shared_ptr<etiss::CPUCore>) to allow direct setting of custom action for cpu_core etiss::VirtualStruct with fcustom_action. | |
| void | shutdown () |
| Shutdown ETISS. | |
| std::string | errorMessage (etiss::int32 code, CPUArch *arch=0) |
| Get the error message for an error code for a specific CPUArch plug-in. | |
| void | forceInitialization () |
| Force the initialization of ETISS. | |
| std::shared_ptr< ETISS_System > | createFastMemory (size_t size) |
| creates a very fast ETISS_System structure. | |
| CONSTEXPR size_t | set_lsbs (size_t val) |
| etiss::ModuleHandle | GetModuleByName (const std::string &name="") |
| etiss::ModuleHandle | GetModuleByAddress (uintptr_t adr) |
| std::string | GetModulePath (etiss::ModuleHandle hModule) |
| etiss::ModuleHandle | GetCurrentModule () |
| Returns the module handle to the own dynamic library. | |
| std::string | GetCurrentModulePath () |
| Returns the abolute path with filename to the own dynamic library. | |
| template<typename T > | |
| std::enable_if< std::is_base_of< etiss::ToString, T >::value, std::ostream & >::type | operator<< (std::ostream &os, const T &val) |
| Implementation of the write to stream operator for objects, that implement the etiss::ToString interface. | |
| Verbosity & | verbosity () |
| Get log level reference. | |
| bool & | log_to_stderr () |
| template<typename T > | |
| std::string | toString (const T &val) |
| conversion of type T to std::string. | |
| std::list< std::string > | split (const std::string &str, std::function< size_t(const std::string &, size_t, size_t &)> findsplit) |
| std::list< std::string > | split (const std::string &str, char splitchar) |
| std::list< std::string > | split (const std::string &str, const std::string &splitstring) |
| template<typename T , typename T2 , typename... O> | |
| std::string | toString (const T &val, const T2 &val2, const O &...others) |
| conversion of type T to std::string. | |
| std::string | toString (const Verbosity &val) |
| prints string representation of verbosity level | |
| void | log (Verbosity level, std::string msg) |
| write log message at the given level. | |
| void | logC (Verbosity level, std::function< std::string(void)> msgGen) |
| write log message at the given level. | |
| template<typename T > | |
| std::string | toLogString (const T &t) |
| Format the string representation of a value for the log output. | |
| template<typename T1 , typename T2 , typename... O> | |
| std::string | toLogString (const T1 &t1, const T2 &t2, const O &...os) |
| Format a list of arguments for the log output. | |
| template<typename T , typename... O> | |
| void | log (Verbosity level, std::string msg, const T &t, const O &...args) |
| additional objects will be converted to a string with toString and are added to the message | |
| std::vector< std::string > | parseCommands (const std::string &cmdline) |
| Configuration & | cfg (const std::string &cfgName) |
| Get reference of the global ETISS configuration object. | |
| Configuration & | cfg () |
| std::string | installDir () |
| Get ETISS installation directory. | |
| std::string | jitFiles () |
| Get ETISS JIT files path. | |
| std::vector< std::string > | jitExtHeaders () |
| Get ETISS JIT external headers. | |
| std::vector< std::string > | jitExtLibraries () |
| Get ETISS JIT external libraries. | |
| std::vector< std::string > | jitExtHeaderPaths () |
| Get ETISS JIT external path. | |
| std::vector< std::string > | jitExtLibPaths () |
| Get ETISS JIT external path. | |
| template<> | |
| std::string | Configuration::get< std::string > (const std::string &key, std::string default_, bool *default_used) |
| endian_t | getEndianness () |
| evaluates the endianness of the current build as a constexpr. | |
| template<typename T > | |
| std::enable_if< std::is_base_of< etiss::RefCountedObject< ObjectPool< T > >, T >::value, bool >::type | decRef (T *ptr) |
| template<typename T , typename allocatorT > | |
| std::enable_if< std::is_base_of< etiss::RefCountedObject< allocatorT >, T >::value, bool >::type | helper_decRef (T *ptr) |
| template<typename T , typename allocatorT > | |
| std::enable_if< std::is_base_of< etiss::RefCountedObject< allocatorT >, T >::value, void >::type | helper_incRef (T *ptr) |
| template<typename T , typename allocatorT > | |
| std::enable_if< std::is_base_of< etiss::RefCountedObject< allocatorT >, T >::value, allocatorT *& >::type | helper_allocator_ptr_ref (T *ptr) |
| template<typename T > | |
| void | incRef (T *ptr) |
| template<typename T > | |
| std::enable_if< std::is_base_of< etiss::RefCountedObject< void >, T >::value, bool >::type | decRef (T *ptr) |
| std::shared_ptr< ETISS_System > | wrap (etiss::System *sys) |
| wraps a etiss::System in a ETISS_System structure. | |
| void | copy (VirtualStruct &dst, VirtualStruct &src, std::list< std::shared_ptr< VirtualStruct::Field > > &dst_notPresent, std::list< std::shared_ptr< VirtualStruct::Field > > &dst_notWriteable, std::list< std::shared_ptr< VirtualStruct::Field > > dst_unknown, bool pretend=false, std::list< std::shared_ptr< VirtualStruct::Field > > *src_private=0, std::list< std::shared_ptr< VirtualStruct::Field > > *dst_private=0) |
| copies all fields with the same name from the source to the destination structure. | |
| static void | parseName (const char *cname, const int baseflags, unsigned &flags, std::string &name_) |
| std::vector< std::string > & | split (const std::string &s, char delim, std::vector< std::string > &elems) |
| template<> | |
| std::string | Configuration::get< std::string > (const std::string &key, std::string default_, bool *default_used) |
| etiss::int32 | dbg_print (etiss::uint32 reg) |
| template<unsigned len, unsigned pos> | |
| static std::enable_if< len==pos, void >::type | call_initCodeBlock (etiss::TranslationPlugin **ca, CodeBlock &cb) |
| template<unsigned len, unsigned pos> | |
| static std::enable_if< len!=pos, void >::type | call_initCodeBlock (etiss::TranslationPlugin **ca, CodeBlock &cb) |
| template<unsigned len, unsigned pos> | |
| static std::enable_if< len==pos, void >::type | call_finalizeCodeBlock (etiss::TranslationPlugin **ca, CodeBlock &cb) |
| template<unsigned len, unsigned pos> | |
| static std::enable_if< len!=pos, void >::type | call_finalizeCodeBlock (etiss::TranslationPlugin **ca, CodeBlock &cb) |
| static void | call_initCodeBlock_ul (etiss::TranslationPlugin **ca, CodeBlock &cb) |
| static void | call_finalizeCodeBlock_ul (etiss::TranslationPlugin **ca, CodeBlock &cb) |
| static uint64_t | genTranslationId () |
Variables | |
| static const ModuleHandle | NullModuleHandle = nullptr |
| Represents a null value for hl::ModuleHandle. | |
forwards: include/jit/*
Singleton to represent specific PTE format, every PTE uses this singleton to parse raw PTE value into PPN and protection flags, read/write PPN or flags.
Page Table Entry (PTE) defines the composition of Page Frame Number (PFN) and relavant flags.
A PTE contains page frame number (pfn) and protection flags. PTEFormat is used to record bit field of PFR and flags in PTE raw value.PFN or flags could be read/write with help of PTEFormat, which could be built up by its builder utility.
| typedef etiss::int32(* etiss::ExecBlockCall) (ETISS_CPU *cpu, ETISS_System *system, void **plugin_pointers) |
Definition at line 18 of file Translation.h.
| typedef void* etiss::ModuleHandle |
| enum etiss::endian_t : uint32_t |
| enum etiss::InterruptType |
interrupt types supported by the default implementation
| Enumerator | |
|---|---|
| EDGE_TRIGGERED | |
| LEVEL_TRIGGERED | |
Definition at line 32 of file InterruptHandler.h.
| enum etiss::Verbosity |
|
static |
Definition at line 47 of file Translation.cpp.
|
static |
Definition at line 53 of file Translation.cpp.
References etiss::TranslationPlugin::finalizeCodeBlock().

|
static |
Definition at line 68 of file Translation.cpp.
References etiss::TranslationPlugin::finalizeCodeBlock().
Referenced by etiss::Translation::init().


|
static |
Definition at line 35 of file Translation.cpp.
|
static |
Definition at line 40 of file Translation.cpp.
References etiss::TranslationPlugin::initCodeBlock().

|
static |
Definition at line 60 of file Translation.cpp.
References etiss::TranslationPlugin::initCodeBlock().
Referenced by etiss::Translation::init().


| etiss::Configuration & etiss::cfg | ( | ) |
Definition at line 548 of file Misc.cpp.
References cfg().
Referenced by cfg(), cfg(), etiss::ConfigAnnouncer::ConfigAnnouncer(), Configuration::get< std::string >(), etiss_initialize(), etiss_loadIniConfigs(), etiss_semihost_enabled(), etiss::CPUCore::execute(), etiss::Translation::getBlock(), etiss::CPUArch::getIncludePath(), etiss::MemoryManipulationSystem::init_manipulation(), initialize_virtualstruct(), RV32IMACFDArch::initInstrSet(), RV64IMACFDArch::initInstrSet(), jitExtHeaderPaths(), jitExtHeaders(), jitExtLibPaths(), jitExtLibraries(), etiss::Configuration::listFullConfiguration(), etiss::SimpleMemSystem::load_elf(), etiss::SimpleMemSystem::load_segments(), etiss::Initializer::loadIniJIT(), etiss::Initializer::loadIniPlugins(), main(), preloadLibraries(), etiss::Configuration::set(), etiss::Configuration::set_cmd_line_boost(), etiss::SimpleMemSystem::SimpleMemSystem(), etiss::Translation::translateBlock(), verifyJITPragmaPack(), and verifyJITSizeOf().


| etiss::Configuration & etiss::cfg | ( | const std::string & | cfgName | ) |
| std::string etiss::Configuration::get< std::string > | ( | const std::string & | key, |
| std::string | default_, | ||
| bool * | default_used | ||
| ) |
Definition at line 227 of file Misc.cpp.
References cfg(), etiss::Configuration::get(), log(), and VERBOSE.
Referenced by etiss::Configuration::get(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Initializer::loadIniJIT(), and etiss::SimpleMemSystem::SimpleMemSystem().


| std::string etiss::Configuration::get< std::string > | ( | const std::string & | key, |
| std::string | default_, | ||
| bool * | default_used | ||
| ) |
Definition at line 227 of file Misc.cpp.
References cfg(), etiss::Configuration::get(), log(), and VERBOSE.
Referenced by etiss::Configuration::get(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Initializer::loadIniJIT(), and etiss::SimpleMemSystem::SimpleMemSystem().


| void etiss::copy | ( | VirtualStruct & | dst, |
| VirtualStruct & | src, | ||
| std::list< std::shared_ptr< VirtualStruct::Field > > & | dst_notPresent, | ||
| std::list< std::shared_ptr< VirtualStruct::Field > > & | dst_notWriteable, | ||
| std::list< std::shared_ptr< VirtualStruct::Field > > | dst_unknown, | ||
| bool | pretend = false, |
||
| std::list< std::shared_ptr< VirtualStruct::Field > > * | src_private = 0, |
||
| std::list< std::shared_ptr< VirtualStruct::Field > > * | dst_private = 0 |
||
| ) |
copies all fields with the same name from the source to the destination structure.
if a source field is not present in the destination then the field will be added to dst_notPresent if a field is not writeable in the destination then the field will be added to dst_notWriteable if a destination field is not present in the source then the field will be added to dst_unknown if src_private and/or dst_private is passed then they will contain a list of private fields of the source/destination which are ignored by the copy function.
| pretend | if true then no copy operation will be performed (only the lists will be filled) |
Definition at line 580 of file VirtualStruct.cpp.
References etiss::VirtualStruct::findName(), etiss::VirtualStruct::foreachField(), etiss::VirtualStruct::Field::P, and etiss::VirtualStruct::Field::W.

| std::shared_ptr< ETISS_System > etiss::createFastMemory | ( | size_t | size | ) |
creates a very fast ETISS_System structure.
segmentation faults are possible if the read access happens outside of the range 0 to size-1. writing to areas that have been translated results in undefined behaviour. instruction write access return etiss::RETURNCODE::IBUS_WRITE_ERROR. time synchronization is disabled but may be changed if a custom handle is not required;
Definition at line 49 of file FastMemory.cpp.
References system_call_dbg_read(), system_call_dbg_write(), system_call_dread(), system_call_dwrite(), system_call_iread(), system_call_iwrite(), system_call_syncTime(), and uint8_t.

| etiss::int32 etiss::dbg_print | ( | etiss::uint32 | reg | ) |
Definition at line 143 of file System.cpp.
| std::enable_if< std::is_base_of< etiss::RefCountedObject< ObjectPool< T > >, T >::value, bool >::type etiss::decRef | ( | T * | ptr | ) |
Definition at line 179 of file ObjectPool.h.
References etiss::ObjectPool< T, prealloc_inc >::deallocate(), and etiss::ObjectPool< T, prealloc_inc >::destroy().

| std::enable_if< std::is_base_of< etiss::RefCountedObject< void >, T >::value, bool >::type etiss::decRef | ( | T * | ptr | ) |
Definition at line 100 of file RefCountedObject.h.
References unlikely.
|
static |
Definition at line 77 of file Translation.cpp.
References uint64_t.
| etiss::ModuleHandle etiss::GetCurrentModule | ( | ) |
Returns the module handle to the own dynamic library.
Definition at line 109 of file Memory.cpp.
References GetCurrentModule(), and GetModuleByAddress().
Referenced by GetCurrentModule(), and GetCurrentModulePath().


| std::string etiss::GetCurrentModulePath | ( | ) |
Returns the abolute path with filename to the own dynamic library.
Definition at line 120 of file Memory.cpp.
References GetCurrentModule(), and GetModulePath().
Referenced by installDir().


|
inline |
evaluates the endianness of the current build as a constexpr.
Definition at line 505 of file Misc.h.
References _BIG_ENDIAN_, _LITTLE_ENDIAN_, and _UNKNOWN_ENDIAN_.
Referenced by etiss::instr::Buffer::recoverFromEndianness().

| etiss::ModuleHandle etiss::GetModuleByAddress | ( | uintptr_t | adr | ) |
Definition at line 90 of file Memory.cpp.
Referenced by GetCurrentModule().

| etiss::ModuleHandle etiss::GetModuleByName | ( | const std::string & | name = "" | ) |
Definition at line 61 of file Memory.cpp.
References NULL, and NullModuleHandle.
| std::string etiss::GetModulePath | ( | etiss::ModuleHandle | hModule | ) |
Definition at line 97 of file Memory.cpp.
Referenced by GetCurrentModulePath().

| std::enable_if< std::is_base_of< etiss::RefCountedObject< allocatorT >, T >::value, allocatorT *& >::type etiss::helper_allocator_ptr_ref | ( | T * | ptr | ) |
Definition at line 86 of file RefCountedObject.h.
| std::enable_if< std::is_base_of< etiss::RefCountedObject< allocatorT >, T >::value, bool >::type etiss::helper_decRef | ( | T * | ptr | ) |
Definition at line 60 of file RefCountedObject.h.
References unlikely.
| std::enable_if< std::is_base_of< etiss::RefCountedObject< allocatorT >, T >::value, void >::type etiss::helper_incRef | ( | T * | ptr | ) |
Definition at line 73 of file RefCountedObject.h.
References unlikely.
|
inline |
Definition at line 94 of file RefCountedObject.h.
| std::string etiss::installDir | ( | ) |
Get ETISS installation directory.
Definition at line 554 of file Misc.cpp.
References GetCurrentModulePath().
Referenced by etiss_initialize(), jitFiles(), and preloadLibraries().


| std::vector< std::string > etiss::jitExtHeaderPaths | ( | ) |
Get ETISS JIT external path.
Definition at line 584 of file Misc.cpp.
References cfg(), and etiss::Configuration::get().
Referenced by etiss::Translation::getBlock().


| std::vector< std::string > etiss::jitExtHeaders | ( | ) |
Get ETISS JIT external headers.
Definition at line 568 of file Misc.cpp.
References cfg(), and etiss::Configuration::get().
Referenced by etiss::Translation::getBlock().


| std::vector< std::string > etiss::jitExtLibPaths | ( | ) |
Get ETISS JIT external path.
Definition at line 592 of file Misc.cpp.
References cfg(), and etiss::Configuration::get().
Referenced by etiss::Translation::getBlock(), and TCCJIT::translate().


| std::vector< std::string > etiss::jitExtLibraries | ( | ) |
Get ETISS JIT external libraries.
Definition at line 576 of file Misc.cpp.
References cfg(), and etiss::Configuration::get().
Referenced by etiss::Translation::getBlock().


| std::string etiss::jitFiles | ( | ) |
Get ETISS JIT files path.
Definition at line 563 of file Misc.cpp.
References installDir().
Referenced by etiss::Translation::getBlock(), etiss::LLVMJIT::translate(), TCCJIT::translate(), verifyJITPragmaPack(), verifyJITSizeOf(), and etiss::plugin::SelectiveSysWrapper::wrap().


| void etiss::log | ( | Verbosity | level, |
| std::string | msg | ||
| ) |
write log message at the given level.
if the current verbose level is lower then the message will not be printed
Definition at line 94 of file Misc.cpp.
References etiss_log_to_stderr, etiss_verbosity, FATALERROR, and toString().
Referenced by etiss::VirtualStruct::Field::_applyAction(), etiss::VirtualStruct::Field::_applyBitflip(), RegField_RV32IMACFD::_write(), pcField_RV32IMACFD::_write(), RegField_RV64IMACFD::_write(), pcField_RV64IMACFD::_write(), etiss::fault::Injector::acceleratedTrigger(), access_error(), etiss::fault::Action::Action(), etiss::fault::Action::Action(), etiss::fault::Action::Action(), etiss::fault::Action::Action(), etiss::fault::Action::Action(), etiss::fault::Action::Action(), etiss::SimpleMemSystem::add_memsegment(), etiss::instr::Instruction::addCallback(), etiss::fault::Stressor::addFault(), etiss::fault::Stressor::addFaultDefinition(), etiss::VirtualStruct::addField(), etiss::CPUCore::addPlugin(), etiss::DataSheetAccurateTiming::addRule(), etiss::instr::InstructionDefinition::addTo(), etiss::instr::InstructionGroup::addTo(), etiss::fault::Injector::addTrigger(), etiss::VirtualStruct::allocateFromC(), cfg(), etiss::fault::Trigger::check(), etiss::mm::PTE::ClearFlagByName(), etiss::instr::VariableInstructionSet::compile(), Configuration::get< std::string >(), etiss::instr::InstructionSet::create(), etiss::CPUCore::create(), etiss::plugin::gdb::Server::createTCPServer(), etiss::plugin::gdb::Server::createTCPServer(), etiss::fault::Injector::cycleAccurateCallback(), etiss::mm::dbg_write(), etiss::interfaces::VCD::declare(), etiss::plugin::dread(), etiss::mm::TLB< EntryNum >::DumpEntry(), etiss::plugin::dwrite(), etiss::fault::Trigger::ensure(), etiss_check_shutdown(), etiss_CPUCore_handleException(), etiss_initialize(), etiss_loadIniConfigs(), ETISS_SIGNAL_MMU(), ETISSINCLUDED_createPlugin(), etiss::plugin::errorInjection::BlockAccurateHandler::execute(), etiss::CPUCore::execute(), etiss::fault::Fault::Fault(), etiss::fault::Stressor::firedTrigger(), etiss::instr::InstructionSet::foreach(), etiss::fault::Injector::freeFastFieldAccessPtr(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Translation::getBlock(), etiss::mm::PTE::GetByName(), etiss::fault::Action::getCommand(), getCPUArch(), etiss::fault::Action::getEvent(), etiss::fault::Action::getFaultRef(), etiss::fault::InjectorAddress::getInjector(), etiss::fault::Action::getInjectorAddress(), etiss::fault::Injector::getInjectorPath(), getJIT(), etiss::fault::Action::getMaskOp(), etiss::fault::Action::getMaskValue(), getPlugin(), etiss::fault::Action::getTargetBit(), etiss::fault::Action::getTargetField(), etiss::plugin::gdb::Server::handlePacket(), etiss::Translation::init(), etiss::mm::MMU::Init(), etiss::MemoryManipulationSystem::init_manipulation(), initialize_virtualstruct(), RV32IMACFDArch::initInstrSet(), RV64IMACFDArch::initInstrSet(), etiss::fault::Injector::Injector(), etiss::fault::InjectorAddress::InjectorAddress(), etiss::fault::InjectorAddress::InjectorAddress(), etiss::fault::InjectorAddress::InjectorAddress(), etiss::fault::Injector::instructionAccurateCallback(), InstructionSpecificAddressCallback_callback(), etiss::mm::iread(), etiss::mm::iwrite(), listCPUArchs(), listJITs(), listPlugins(), etiss::SimpleMemSystem::load_elf(), etiss::SimpleMemSystem::load_segments(), etiss::Initializer::loadIniJIT(), etiss::Initializer::loadIniPlugins(), loadLibraryList(), etiss::fault::Stressor::loadXML(), log(), logC(), etiss::plugin::Logger::Logger(), main(), etiss::MappedInterruptVector< INT >::MappedInterruptVector(), etiss::MemSegment::memInit(), etiss::MemSegment::MemSegment(), etiss::fault::Injector::needsCallbacks(), etiss::instr::OPCode::OPCode(), etiss::instr::OPCode::OPCode(), etiss::LibraryInterface::openSharedLibrary(), etiss::fault::InjectorAddress::operator=(), etiss::ExpandingNativeStack< T, stackallocatedsize >::operator[](), etiss::ExpandingNativeStack< T, stackallocatedsize >::operator[](), etiss::mm::page_fault_ni_(), etiss::fault::xml::parse< std::vector< etiss::fault::Fault > >(), etiss::fault::xml::parse< std::vector< etiss::fault::FaultRef > >(), etiss::instr::parse_i(), parseName(), etiss::ExpandingNativeStack< T, stackallocatedsize >::pop(), etiss::interfaces::Delegate::read(), etiss::instr::Buffer::recoverFromEndianness(), etiss::fault::Stressor::removeFault(), etiss::fault::Injector::removeTrigger(), etiss::fault::Fault::resolveTime(), etiss::fault::Trigger::resolveTime(), RV32IMACFD_createCPUArch(), RV64IMACFD_createCPUArch(), etiss::interfaces::WishboneBus< BOOLSIG, VECTORSIG, instrBus, flipEndianess, bytewidth, VECTORSIGSTORAGETYPE >::sel2Length(), etiss::interfaces::sel_rwop(), semihostingCall(), semihostReadStructField(), etiss::Configuration::set(), etiss::Configuration::set(), etiss::Configuration::set_cmd_line_boost(), etiss::mm::PTE::SetFlagByName(), shutdown(), etiss::CPUArchRegListenerInterface::signalChangedRegisterValue(), etiss::mm::MMU::SignalMMU(), etiss::interfaces::Delegate::syncTime(), etiss::CodeBlock::toCode(), etiss::interfaces::SimpleInstructionInjector< T >::toFunction(), etiss::mm::MMU::Translate(), etiss::fault::Trigger::Trigger(), etiss::fault::Trigger::Trigger(), etiss::fault::Trigger::Trigger(), etiss::fault::Trigger::Trigger(), etiss::fault::Trigger::Trigger(), etiss::plugin::unimpl_read(), etiss::plugin::unimpl_write(), etiss::mm::PTE::Update(), etiss::interfaces::WishboneBus< BOOLSIG, VECTORSIG, instrBus, flipEndianess, bytewidth, VECTORSIGSTORAGETYPE >::update(), etiss::interfaces::VCD::update(), verifyJITPragmaPack(), verifyJITSizeOf(), etiss::interfaces::Delegate::write(), etiss::string::form_string::write(), etiss::fault::xml::write< std::vector< etiss::fault::Fault > >(), etiss::fault::xml::write< std::vector< etiss::fault::FaultRef > >(), etiss::string::form_string::write_dec(), etiss::string::form_string::writet(), and etiss::VirtualStruct::~VirtualStruct().

| void etiss::log | ( | Verbosity | level, |
| std::string | msg, | ||
| const T & | t, | ||
| const O &... | args | ||
| ) |
additional objects will be converted to a string with toString and are added to the message
Definition at line 247 of file Misc.h.
References log(), toLogString(), and verbosity().

| bool & etiss::log_to_stderr | ( | ) |
Definition at line 89 of file Misc.cpp.
References etiss_log_to_stderr.
Referenced by etiss_initialize().

| void etiss::logC | ( | Verbosity | level, |
| std::function< std::string(void)> | msgGen | ||
| ) |
write log message at the given level.
if the current verbose level is lower then the mesGen function will not be called.
Definition at line 108 of file Misc.cpp.
References etiss_verbosity, and log().

| std::enable_if< std::is_base_of< etiss::ToString, T >::value, std::ostream & >::type etiss::operator<< | ( | std::ostream & | os, |
| const T & | val | ||
| ) |
Implementation of the write to stream operator for objects, that implement the etiss::ToString interface.
| std::vector< std::string > etiss::parseCommands | ( | const std::string & | cmdline | ) |
Definition at line 116 of file Misc.cpp.
Referenced by etiss::Configuration::Configuration().

|
static |
Definition at line 12 of file CVirtualStruct.cpp.
References ETISS_SRCLOC, FATALERROR, log(), etiss::VirtualStruct::Field::P, and WARNING.
Referenced by etiss::VirtualStruct::allocateFromC().


Definition at line 17 of file FixedSizeHashMap.h.
References set_lsbs().
Referenced by etiss::FixedSizeHashMap< K, V, hashFunc, log2_buckets >::erase(), etiss::FixedSizeHashMap< K, V, hashFunc, log2_buckets >::find(), etiss::FixedSizeHashMap< K, V, hashFunc, log2_buckets >::find(), and set_lsbs().


| std::vector< std::string > & etiss::split | ( | const std::string & | s, |
| char | delim, | ||
| std::vector< std::string > & | elems | ||
| ) |
Definition at line 29 of file ETISSInit.cpp.
References s.
|
inline |
|
inline |
| std::list< std::string > etiss::split | ( | const std::string & | str, |
| std::function< size_t(const std::string &, size_t, size_t &)> | findsplit | ||
| ) |
Definition at line 54 of file Misc.cpp.
Referenced by etiss::interfaces::VCD::declare(), initialize_virtualstruct(), loadLibraryList(), split(), and split().

| std::string etiss::toLogString | ( | const T & | t | ) |
Format the string representation of a value for the log output.
Currently toLogString only puts the result of toString() in curly brackets
Definition at line 224 of file Misc.h.
References toString().
Referenced by log(), and toLogString().


| std::string etiss::toLogString | ( | const T1 & | t1, |
| const T2 & | t2, | ||
| const O &... | os | ||
| ) |
Format a list of arguments for the log output.
This function uses etiss::toLogString(cont T & t) convert the arguments to strings. Arguments following the first argument are added to a new line and indented by two tabs.
Definition at line 237 of file Misc.h.
References toLogString().

| std::string etiss::toString | ( | const T & | val | ) |
conversion of type T to std::string.
This implementation uses std::stringstream. This function also works if std::string or const char* T::toString() exists.
| val | Reference to the value, that shall be converted. |
Definition at line 133 of file Misc.h.
Referenced by etiss::DataSheetAccurateTiming::addRule(), etiss::plugin::gdb::Server::createTCPServer(), etiss::CPUCore::execute(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Configuration::get(), etiss::Translation::getBlock(), etiss::DataSheetAccurateTiming::handleMatch_cycles(), etiss::Translation::init(), etiss::plugin::InstructionSpecificAddressCallback::initCodeBlock(), log(), etiss::instr::OPCode::OPCode(), etiss::interfaces::Dot::pcreateN(), etiss::Initializer::toList(), toLogString(), etiss::SourceCodeLocation::toString(), and toString().

| std::string etiss::toString | ( | const T & | val, |
| const T2 & | val2, | ||
| const O &... | others | ||
| ) |
conversion of type T to std::string.
default implementation uses std::stringstream
Definition at line 168 of file Misc.h.
References toString().

| std::string etiss::toString | ( | const Verbosity & | val | ) |
| Verbosity & etiss::verbosity | ( | ) |
Get log level reference.
log to stderr instead of stdout
This function allows get the current log level of ETISS and change the log level.
Definition at line 84 of file Misc.cpp.
References etiss_verbosity.
Referenced by access_error(), etiss_initialize(), etiss_loadIniConfigs(), and log().

|
extern |
wraps a etiss::System in a ETISS_System structure.
Definition at line 58 of file System.cpp.
References ETISS_System::dbg_read, ETISS_System::dbg_write, ETISS_System::dread, ETISS_System::dwrite, ETISS_System::handle, ETISS_System::iread, ETISS_System::iwrite, ETISS_System::syncTime, system_call_dbg_read(), system_call_dbg_write(), system_call_dread(), system_call_dwrite(), system_call_iread(), system_call_iwrite(), and system_call_syncTime().
Referenced by etiss::CPUCore::execute().


|
static |
Represents a null value for hl::ModuleHandle.
Definition at line 40 of file Memory.h.
Referenced by GetModuleByName().