ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
|
#include <RV64IMACFDArchSpecificImp.h>
Public Member Functions | |
pcField_RV64IMACFD (etiss::VirtualStruct &parent) | |
virtual | ~pcField_RV64IMACFD () |
Public Member Functions inherited from etiss::VirtualStruct::Field | |
Field (VirtualStruct &parent, const std::string &name, const std::string &prettyname, int flags, size_t width, size_t bitwidth=0) | |
Field (VirtualStruct &parent, const std::string &name, const std::string &prettyname, int flags, size_t width, bool virtual_enabled, std::function< uint64_t()> lread, std::function< void(uint64_t)> lwrite, size_t bitwidth=0) | |
virtual | ~Field () |
uint64_t | read () const |
function to read bits/a value from the Field. More... | |
void | write (uint64_t) |
function to write bits/a value to the Field. More... | |
bool | applyBitflip (unsigned position, uint64_t fault_id) |
function to write a bitflip to a field More... | |
bool | applyAction (const etiss::fault::Fault &f, const etiss::fault::Action &a, std::string &errormsg) |
advanced fault injection. Field must have the A flag to use this. More... | |
void | signalWrite () |
this function should be called if the listener flag is set and the field changed without using the write() function. More... | |
Field * | setDeleteP (std::function< void(Field *)> del) |
Field & | setDelete (std::function< void(Field *)> del) |
bool | addListener (Listener *listener, std::shared_ptr< Listener > ref=nullptr) |
void | removeListener (Listener *listener, std::shared_ptr< Listener > ref=nullptr) |
Protected Member Functions | |
virtual uint64_t | _read () const |
override this function to implement reads in case of AccessMode::VIRTUAL / AccessMode::PREFER_LAMBDA More... | |
virtual void | _write (uint64_t val) |
override this function to implement writes in case of AccessMode::VIRTUAL / AccessMode::PREFER_LAMBDA More... | |
Protected Member Functions inherited from etiss::VirtualStruct::Field | |
virtual bool | _applyBitflip (unsigned position, uint64_t fault_id) |
override this function to implement bitflip applying to a field More... | |
virtual bool | _applyAction (const etiss::fault::Fault &f, const etiss::fault::Action &a, std::string &errormsg) |
override this function to implement advanced action handling More... | |
Additional Inherited Members | |
Public Types inherited from etiss::VirtualStruct::Field | |
enum | AccessMode { VIRTUAL , LAMBDA , PREFER_LAMBDA } |
defines how a field should perform reads/writes. More... | |
Public Attributes inherited from etiss::VirtualStruct::Field | |
VirtualStruct & | parent_ |
reference to parent virtual struct More... | |
const std::string | name_ |
name of the field. More... | |
const std::string | prettyname_ |
alternative/human readable name of the field. More... | |
const int | flags_ |
read write flags as specified by the static const int parameters of Field: R,W,L More... | |
const size_t | width_ |
width in bytes (rounded up if neccessary) More... | |
const size_t | bitwidth_ |
width in bits More... | |
const AccessMode | accessMode_ |
std::function< bool(unsigned position, uint64_t fault_id)> | lapplyBitflip |
if this function is set the the default implementation of applyBitflip will use it More... | |
std::function< void(Field *)> | delete_ |
Static Public Attributes inherited from etiss::VirtualStruct::Field | |
static const int | R = 1 |
read flag More... | |
static const int | W = 2 |
write flag More... | |
static const int | RW = R | W |
flags to signal that a field supports read and write operations More... | |
static const int | L = 4 |
supports listener plugins; used for etiss::RegisterDevicePlugins to determine access to a variable/field More... | |
static const int | F = 8 |
supports fault injection/tracing More... | |
static const int | A = 16 |
supports advanced fault injection/tracing with the applyAction function More... | |
static const int | P = 32 |
private field: this flag indicates that this field is an implementation specific field that e.g. More... | |
Protected Attributes inherited from etiss::VirtualStruct::Field | |
std::function< uint64_t()> | lread |
set this function for reads in case of AccessMode::LAMBDA / AccessMode::PREFER_LAMBDA More... | |
std::function< void(uint64_t)> | lwrite |
set this function for writes in case of AccessMode::LAMBDA / AccessMode::PREFER_LAMBDA More... | |
Definition at line 58 of file RV64IMACFDArchSpecificImp.h.
|
inline |
Definition at line 60 of file RV64IMACFDArchSpecificImp.h.
|
inlinevirtual |
Definition at line 69 of file RV64IMACFDArchSpecificImp.h.
|
inlineprotectedvirtual |
override this function to implement reads in case of AccessMode::VIRTUAL / AccessMode::PREFER_LAMBDA
Reimplemented from etiss::VirtualStruct::Field.
Definition at line 72 of file RV64IMACFDArchSpecificImp.h.
References etiss::VirtualStruct::Field::parent_, etiss::VirtualStruct::structure_, and uint64_t.
|
inlineprotectedvirtual |
override this function to implement writes in case of AccessMode::VIRTUAL / AccessMode::PREFER_LAMBDA
Reimplemented from etiss::VirtualStruct::Field.
Definition at line 76 of file RV64IMACFDArchSpecificImp.h.
References etiss::log(), etiss::VirtualStruct::Field::name_, etiss::VirtualStruct::Field::parent_, etiss::VirtualStruct::structure_, and etiss::VERBOSE.