56 #ifndef ETISS_INCLUDE_LIBRARY_H_
57 #define ETISS_INCLUDE_LIBRARY_H_
66 #define etiss_helper_merge_l2(X1, X2) X1##X2
67 #define etiss_helper_merge(X1, X2) etiss_helper_merge_l2(X1, X2)
74 #include "etiss/pluginexport.h"
111 virtual std::string
nameJIT(
unsigned index);
112 virtual std::string
namePlugin(
unsigned index);
117 std::map<std::string, std::string>
options = std::map<std::string, std::string>());
119 unsigned index, std::map<std::string, std::string>
options = std::map<std::string, std::string>());
121 unsigned index, std::map<std::string, std::string>
options = std::map<std::string, std::string>());
135 virtual const std::string &
getName();
138 static std::shared_ptr<LibraryInterface>
openSharedLibrary(std::string path, std::string name);
ETISS_PLUGIN_EXPORT etiss::CPUArch std::map< std::string, std::string > options
create new instance of the CPUArch type at index
contains neccesary interfaces for instruction translation.
JIT compiler interface definition.
general configuration and logging
plugins for extensions to code translation and instruction execution
the interface to translate instructions of and processor architecture
compiler interface for just in time compilation of generated C code
interface class for libraries.
virtual void deletePlugin(etiss::Plugin *)
virtual bool isEmpty()
returns true if this library provides nothing
virtual etiss::CPUArch * createCPUArch(unsigned index, std::map< std::string, std::string > options=std::map< std::string, std::string >())
virtual unsigned countPlugins()
virtual etiss::Plugin * createPlugin(unsigned index, std::map< std::string, std::string > options=std::map< std::string, std::string >())
static std::shared_ptr< LibraryInterface > openIntegratedLibrary()
LibraryInterface(std::string name)
virtual ~LibraryInterface()
virtual void deleteCPUArch(etiss::CPUArch *)
virtual std::string versionInfo()
simple version info string. intended to present information in a human readable way.
static void addSearchPath(const std::string &path)
virtual void deleteJIT(etiss::JIT *)
virtual unsigned countJITs()
static std::shared_ptr< LibraryInterface > openSharedLibrary(std::string path, std::string name)
virtual std::string nameCPUArch(unsigned index)
static unsigned getCurrentLibraryVersion()
virtual unsigned countCPUArchs()
virtual std::string namePlugin(unsigned index)
virtual std::string nameJIT(unsigned index)
virtual const std::string & getName()
virtual etiss::JIT * createJIT(unsigned index, std::map< std::string, std::string > options=std::map< std::string, std::string >())
base plugin class that provides access to different plugin functions if present
contains defines to configure ETISS.
Page Table Entry (PTE) defines the composition of Page Frame Number (PFN) and relavant flags.