52 #ifndef ETISS_INJECTOR_H_
53 #define ETISS_INJECTOR_H_
61 #if CXX0X_UP_SUPPORTED
80 #if CXX0X_UP_SUPPORTED
81 typedef std::shared_ptr<Injector>
ptr;
154 std::string &errormsg) = 0;
164 static ptr get(
const std::string &injectorPath);
175 #if CXX0X_UP_SUPPORTED
contains the fault container class that stores triggers and actions for fault injection
static __inline__ uint64_t
static __inline__ int32_t
virtual bool readField(void *fastfieldaccessptr, uint64_t &val, std::string &errormsg)=0
read the value of a field
virtual bool applyAction(const etiss::fault::Fault &fault, const etiss::fault::Action &action, std::string &errormsg)=0
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.
static ptr get(const std::string &injectorPath)
virtual std::list< std::string > listSubInjectors()=0
list all sub injectors.
virtual void * fastFieldAccessPtr(const std::string &name, std::string &errormsg)=0
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 std::list< std::string > listFields()=0
list all fields directly reachable by this injector
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
Page Table Entry (PTE) defines the composition of Page Frame Number (PFN) and relavant flags.