ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
FloatRegField_RV64IMACFD Class Reference

#include <RV64IMACFDArchSpecificImp.h>

Inheritance diagram for FloatRegField_RV64IMACFD:
Inheritance graph
[legend]
Collaboration diagram for FloatRegField_RV64IMACFD:
Collaboration graph
[legend]

Public Member Functions

 FloatRegField_RV64IMACFD (etiss::VirtualStruct &parent, unsigned gprid)
 
 FloatRegField_RV64IMACFD (etiss::VirtualStruct &parent, std::string name, unsigned gprid)
 
virtual ~FloatRegField_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 (size_t offset=0) const
 function to read bits/a value from the Field.
 
void write (uint64_t, size_t offset=0)
 function to write bits/a value to the Field.
 
bool applyBitflip (unsigned position, uint64_t fault_id)
 function to write a bitflip to a field
 
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.
 
void signalWrite ()
 this function should be called if the listener flag is set and the field changed without using the write() function.
 
FieldsetDeleteP (std::function< void(Field *)> del)
 
FieldsetDelete (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 (size_t offset) const
 override this function to implement reads in case of AccessMode::VIRTUAL / AccessMode::PREFER_LAMBDA
 
virtual void _write (uint64_t val, size_t offset)
 override this function to implement writes in case of AccessMode::VIRTUAL / AccessMode::PREFER_LAMBDA
 
- 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
 
virtual bool _applyAction (const etiss::fault::Fault &f, const etiss::fault::Action &a, std::string &errormsg)
 override this function to implement advanced action handling
 

Private Attributes

const unsigned gprid_
 

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
VirtualStructparent_
 reference to parent virtual struct
 
const std::string name_
 name of the field.
 
const std::string prettyname_
 alternative/human readable name of the field.
 
int flags_
 read write flags as specified by the static const int parameters of Field: R,W,L
 
const size_t width_
 width in bytes (rounded up if neccessary)
 
const size_t bitwidth_
 width in bits
 
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
 
std::function< void(Field *)> delete_
 
- Static Public Attributes inherited from etiss::VirtualStruct::Field
static const int R = 1
 read flag
 
static const int W = 2
 write flag
 
static const int RW = R | W
 flags to signal that a field supports read and write operations
 
static const int L = 4
 supports listener plugins; used for etiss::RegisterDevicePlugins to determine access to a variable/field
 
static const int F = 8
 supports fault injection/tracing
 
static const int A = 16
 supports advanced fault injection/tracing with the applyAction function
 
static const int P = 32
 private field: this flag indicates that this field is an implementation specific field that e.g.
 
- 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
 
std::function< void(uint64_t)> lwrite
 set this function for writes in case of AccessMode::LAMBDA / AccessMode::PREFER_LAMBDA
 

Detailed Description

Definition at line 83 of file RV64IMACFDArchSpecificImp.h.

Constructor & Destructor Documentation

◆ FloatRegField_RV64IMACFD() [1/2]

FloatRegField_RV64IMACFD::FloatRegField_RV64IMACFD ( etiss::VirtualStruct parent,
unsigned  gprid 
)
inline

Definition at line 89 of file RV64IMACFDArchSpecificImp.h.

◆ FloatRegField_RV64IMACFD() [2/2]

FloatRegField_RV64IMACFD::FloatRegField_RV64IMACFD ( etiss::VirtualStruct parent,
std::string  name,
unsigned  gprid 
)
inline

Definition at line 102 of file RV64IMACFDArchSpecificImp.h.

◆ ~FloatRegField_RV64IMACFD()

virtual FloatRegField_RV64IMACFD::~FloatRegField_RV64IMACFD ( )
inlinevirtual

Definition at line 115 of file RV64IMACFDArchSpecificImp.h.

Member Function Documentation

◆ _read()

virtual uint64_t FloatRegField_RV64IMACFD::_read ( size_t  offset) const
inlineprotectedvirtual

◆ _write()

virtual void FloatRegField_RV64IMACFD::_write ( uint64_t  ,
size_t  offset 
)
inlineprotectedvirtual

Member Data Documentation

◆ gprid_

const unsigned FloatRegField_RV64IMACFD::gprid_
private

Definition at line 86 of file RV64IMACFDArchSpecificImp.h.

Referenced by _read(), and _write().


The documentation for this class was generated from the following file: