ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
Classes | Functions | Variables
ETISS.cpp File Reference

Implementation of etiss/ETISS.h except for etiss::preloadLibraries. More...

#include "etiss/ETISS.h"
#include "etiss/fault/Stressor.h"
#include <csignal>
#include <cstring>
#include <fstream>
#include <functional>
#include <boost/program_options/options_description.hpp>
#include <boost/program_options/parsers.hpp>
#include <boost/program_options/variables_map.hpp>
#include <boost/algorithm/string.hpp>
#include "SimpleIni.h"
Include dependency graph for ETISS.cpp:

Go to the source code of this file.

Classes

class  helper_class_etiss_2
 replaces __attribute__((destructor)) in a portable way More...
 
class  helper_class_etiss_1
 replaces __attribute__((destructor)) in a portable way More...
 
class  helper_class_etiss_3
 replaces __attribute__((destructor)) in a portable way More...
 

Functions

void etiss_SIGINT_handler (int sig)
 
static void etiss_remove_SIGINT ()
 
void etiss_loadIni (std::string fileName)
 
void etiss_loadIniConfigs ()
 
std::pair< std::string, std::string > inifileload (const std::string &s)
 
void etiss_initialize (const std::vector< std::string > &args, bool forced=false)
 
static void etiss_shutdown ()
 
static void etiss_check_shutdown ()
 check if etiss::shutdown() was called before exiting main. More...
 

Variables

std::string etiss_defaultjit_
 
std::list< std::shared_ptr< etiss::LibraryInterface > > etiss_libraries_
 
std::recursive_mutex etiss_libraries_mu_
 
boost::program_options::variables_map vm
 
std::vector< std::string > pluginOptions = {"plugin.logger.logaddr", "plugin.logger.logmask", "plugin.gdbserver.port"}
 
void(* etiss_prev_SIGINT_handler )(int)=0
 
bool etiss_SIGINT_handler_enabled = false
 
static class helper_class_etiss_2 helper_class_etiss_2
 
CSimpleIniA * po_simpleIni
 
static class helper_class_etiss_1 helper_class_etiss_1
 
bool etiss_shutdownOk = false
 
static class helper_class_etiss_3 helper_class_etiss_3
 

Detailed Description

Implementation of etiss/ETISS.h except for etiss::preloadLibraries.

Author
Marc Greim marc..nosp@m.grei.nosp@m.m@myt.nosp@m.um.d.nosp@m.e, Chair of Electronic Design Automation, TUM
Date
July 29, 2014
Version
0.1

Definition in file ETISS.cpp.

Function Documentation

◆ etiss_check_shutdown()

static void etiss_check_shutdown ( )
static

check if etiss::shutdown() was called before exiting main.

Definition at line 968 of file ETISS.cpp.

References etiss::ERROR, etiss_shutdownOk, and etiss::log().

Referenced by helper_class_etiss_3::~helper_class_etiss_3().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ etiss_initialize()

void etiss_initialize ( const std::vector< std::string > &  args,
bool  forced = false 
)

◆ etiss_loadIni()

void etiss_loadIni ( std::string  fileName)

Definition at line 387 of file ETISS.cpp.

References NULL, and po_simpleIni.

Referenced by inifileload(), and etiss::Initializer::loadIni().

Here is the caller graph for this function:

◆ etiss_loadIniConfigs()

void etiss_loadIniConfigs ( )

Definition at line 416 of file ETISS.cpp.

References etiss::cfg(), etiss::ERROR, etiss::FATALERROR, etiss::Configuration::get(), etiss::INFO, etiss::log(), po_simpleIni, etiss::Configuration::set(), get_metrics::sz, get_metrics::type, etiss::VERBOSE, etiss::verbosity(), vm, and etiss::WARNING.

Referenced by etiss_initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ etiss_remove_SIGINT()

static void etiss_remove_SIGINT ( )
static

Definition at line 370 of file ETISS.cpp.

References etiss_prev_SIGINT_handler, and etiss_SIGINT_handler_enabled.

Referenced by etiss_initialize(), and helper_class_etiss_2::~helper_class_etiss_2().

Here is the caller graph for this function:

◆ etiss_shutdown()

static void etiss_shutdown ( )
static

Definition at line 893 of file ETISS.cpp.

References etiss::shutdown().

Referenced by helper_class_etiss_1::~helper_class_etiss_1().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ etiss_SIGINT_handler()

void etiss_SIGINT_handler ( int  sig)

TODO etiss::transferCMDControll();

Definition at line 353 of file ETISS.cpp.

◆ inifileload()

std::pair<std::string, std::string> inifileload ( const std::string &  s)

Definition at line 683 of file ETISS.cpp.

References etiss_loadIni(), and s.

Referenced by etiss_initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ etiss_defaultjit_

std::string etiss_defaultjit_

Definition at line 61 of file ETISS.cpp.

Referenced by etiss::addLibrary(), and etiss::getDefaultJIT().

◆ etiss_libraries_

std::list<std::shared_ptr<etiss::LibraryInterface> > etiss_libraries_

◆ etiss_libraries_mu_

std::recursive_mutex etiss_libraries_mu_

◆ etiss_prev_SIGINT_handler

void(* etiss_prev_SIGINT_handler) (int)=0 ( int  )

Definition at line 350 of file ETISS.cpp.

Referenced by etiss_remove_SIGINT().

◆ etiss_shutdownOk

bool etiss_shutdownOk = false

Definition at line 912 of file ETISS.cpp.

Referenced by etiss_check_shutdown(), and etiss::shutdown().

◆ etiss_SIGINT_handler_enabled

bool etiss_SIGINT_handler_enabled = false

Definition at line 351 of file ETISS.cpp.

Referenced by etiss_remove_SIGINT().

◆ helper_class_etiss_1

◆ helper_class_etiss_2

◆ helper_class_etiss_3

◆ pluginOptions

std::vector<std::string> pluginOptions = {"plugin.logger.logaddr", "plugin.logger.logmask", "plugin.gdbserver.port"}

Definition at line 67 of file ETISS.cpp.

Referenced by etiss::Initializer::loadIniPlugins().

◆ po_simpleIni

CSimpleIniA* po_simpleIni

◆ vm

boost::program_options::variables_map vm