18#ifndef ETISS_INCLUDE_LIBRARY_H_
19#define ETISS_INCLUDE_LIBRARY_H_
28#define etiss_helper_merge_l2(X1, X2) X1##X2
29#define etiss_helper_merge(X1, X2) etiss_helper_merge_l2(X1, X2)
67 virtual std::string
nameJIT(
unsigned index);
68 virtual std::string
namePlugin(
unsigned index);
73 std::map<std::string, std::string>
options = std::map<std::string, std::string>());
75 unsigned index, std::map<std::string, std::string>
options = std::map<std::string, std::string>());
77 unsigned index, std::map<std::string, std::string>
options = std::map<std::string, std::string>());
91 virtual const std::string &
getName();
94 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
general configuration and logging
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()
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.