70 etiss::log(
etiss::INFO, std::string(
"etiss::fault::Injector::freeFastFieldAccessPtr(void*) not implemented"));
84 std::to_string(time_ps) +
")");
89 #if CXX0X_UP_SUPPORTED
90 std::lock_guard<std::mutex> lock(sync);
98 for (std::list<std::pair<Trigger, int32_t>>::iterator iter =
unknown_triggers.begin();
101 if (iter->first.fired(time_ps,
this))
127 std::to_string(time_ps) +
")");
131 #if CXX0X_UP_SUPPORTED
132 template <
typename T>
136 bool operator==(
const std::shared_ptr<T> &p1,
const T *
const &p2)
138 return p1.get() == p2;
163 std::cout <<
"Injector::getInjectorPath: Failed to find injector" << std::endl;
182 path = name +
"::" + path;
190 std::cout <<
"Injector::getInjectorPath: Failed to find injector" << std::endl;
207 ", fault_id=" + std::to_string(fault_id) +
")");
208 #if CXX0X_UP_SUPPORTED
209 std::lock_guard<std::mutex> lock(sync);
228 t.
toString() +
", fault_id=" + std::to_string(fault_id) +
")");
contains the fault injector interface class.
general configuration and logging
contains the stressor class that loads and activates faults.
static __inline__ uint64_t
static __inline__ int32_t
virtual bool acceleratedTrigger(const etiss::fault::Trigger &, int32_t fault_id)
virtual ptr getParentInjector()=0
get a the parent injector (root returns 0).
virtual void freeFastFieldAccessPtr(void *)
MUST be called to cleanup a pointer acquired with fastFieldAccessPtr() default implementation is nop.
virtual bool needsCallbacks()
virtual std::string getInjectorPath()
returns the path of the current object.
virtual ptr getSubInjector(const std::string &name)=0
get a sub injector.
virtual std::list< std::string > listSubInjectors()=0
list all sub injectors.
volatile bool has_pending_triggers
std::list< std::pair< Trigger, int32_t > > unknown_triggers
> Triggers which were just added
virtual bool instructionAccurateCallback(uint64_t time_ps)
virtual bool cycleAccurateCallback(uint64_t time_ps)
std::list< std::pair< Trigger, int32_t > > pending_triggers
void addTrigger(const Trigger &t, int32_t fault_id)
> Triggers to look at in callbacks
static bool firedTrigger(const Trigger &firedTrigger, int32_t fault_id, Injector *injector, uint64_t time_ps)
Checks if the given trigger is valid and calls applyAction.
std::string toString() const
operator<< can be used.
Page Table Entry (PTE) defines the composition of Page Frame Number (PFN) and relavant flags.
void log(Verbosity level, std::string msg)
write log message at the given level.