C++ Device API Reference Manual
Reference documentation for the Simics C++ Device API.
 
Loading...
Searching...
No Matches
simics::Field Class Reference

Base class to represent a Simics field. More...

#include <field.h>

Inheritance diagram for simics::Field:
simics::HierarchicalObject simics::FieldInterface simics::HierarchicalObjectInterface simics::ValueAccessorInterface simics::ValueMutatorInterface simics::ClearOnReadField simics::ConstantField simics::DesignLimitationField simics::IgnoreWriteField simics::Read0Field simics::ReadConstantField simics::ReadOnlyField simics::ReadUnimplField simics::RegisterField< TField, Args > simics::ReservedField simics::SilentUnimplField simics::UndocumentedField simics::UnimplField simics::Write0OnlyField simics::Write1ClearsField simics::Write1OnlyField simics::WriteOnceField simics::WriteUnimplField

Public Member Functions

 Field (MappableConfObject *dev_obj, const std::string &name)
 
 Field (RegisterInterface *parent, std::string_view field_name)
 
 Field (const Field &)=delete
 
Fieldoperator= (const Field &)=delete
 
 Field (Field &&rhs)
 
Fieldoperator= (Field &&rhs)
 
virtual ~Field ()=default
 
std::string_view name () const override
 Get the name of the field without level delimiters.
 
const std::string & description () const override
 Get the description of the field.
 
unsigned number_of_bits () const override
 
void init (std::string_view desc, const bits_type &bits, int8_t offset) override
 Initialize the field with a description, size in bits and an offset.
 
RegisterInterfaceparent () const override
 
uint64_t get () const override
 
void set (uint64_t value) override
 
uint64_t read (uint64_t enabled_bits) override
 
void write (uint64_t value, uint64_t enabled_bits) override
 
size_t offset () const
 
void set_bits (const bits_type &bits)
 
- Public Member Functions inherited from simics::HierarchicalObject
 HierarchicalObject (MappableConfObject *dev_obj, const std::string &name)
 Constructor for HierarchicalObject.
 
virtual ~HierarchicalObject ()
 
 HierarchicalObject (const HierarchicalObject &)=delete
 
HierarchicalObjectoperator= (const HierarchicalObject &)=delete
 
 HierarchicalObject (HierarchicalObject &&rhs) noexcept
 
HierarchicalObjectoperator= (HierarchicalObject &&rhs) noexcept
 
template<typename T >
T * dev_ptr ()
 
const std::string & hierarchical_name () const override
 
std::string_view name () const override
 
const std::string & description () const override
 
void set_description (std::string_view desc) override
 
Level hierarchy_level () const override
 
std::string_view bank_name () const override
 
MappableConfObjectdev_obj () const override
 
ConfObjectRef bank_obj_ref () const override
 
std::string_view parent_name () const override
 
FieldInterfacelookup_field (const std::string &name) const override
 
RegisterInterfacelookup_register (const std::string &name) const override
 
BankInterfacelookup_bank (const std::string &name) const override
 
virtual const std::string & hierarchical_name () const =0
 
virtual std::string_view name () const =0
 
virtual const std::string & description () const =0
 
virtual void set_description (std::string_view desc)=0
 
virtual Level hierarchy_level () const =0
 
virtual std::string_view bank_name () const =0
 
virtual MappableConfObjectdev_obj () const =0
 
virtual ConfObjectRef bank_obj_ref () const =0
 
virtual std::string_view parent_name () const =0
 
virtual FieldInterfacelookup_field (const std::string &name) const =0
 
virtual RegisterInterfacelookup_register (const std::string &name) const =0
 
virtual BankInterfacelookup_bank (const std::string &name) const =0
 
- Public Member Functions inherited from simics::FieldInterface
virtual ~FieldInterface ()=default
 
virtual std::string_view name () const =0
 Get the name of the field without level delimiters.
 
virtual const std::string & description () const =0
 Get the description of the field.
 
virtual unsigned number_of_bits () const =0
 
virtual void init (std::string_view desc, const bits_type &bits, int8_t offset)=0
 Initialize the field with a description, size in bits and an offset.
 
virtual RegisterInterfaceparent () const =0
 
- Public Member Functions inherited from simics::ValueAccessorInterface
virtual ~ValueAccessorInterface ()=default
 
virtual uint64_t get () const =0
 
virtual uint64_t read (uint64_t enabled_bits)=0
 
- Public Member Functions inherited from simics::ValueMutatorInterface
virtual ~ValueMutatorInterface ()=default
 
virtual void set (uint64_t value)=0
 
virtual void write (uint64_t value, uint64_t enabled_bits)=0
 

Additional Inherited Members

- Static Public Member Functions inherited from simics::HierarchicalObject
static bool is_valid_hierarchical_name (std::string_view name)
 
static std::string_view::size_type level_of_hierarchical_name (std::string_view name)
 
- Static Public Attributes inherited from simics::HierarchicalObject
static const uint64_t Register_Read {1}
 Log group ID for Register_Read and Register_Write is fixed.
 
static const uint64_t Register_Write {2}
 
static const uint64_t Register_Read_Exception {3}
 
static const uint64_t Register_Write_Exception {4}
 

Detailed Description

Base class to represent a Simics field.

Field with default behavior which allows access to any bit, without any side-effects.

Constructor & Destructor Documentation

◆ Field() [1/4]

simics::Field::Field ( MappableConfObject dev_obj,
const std::string &  name 
)

◆ Field() [2/4]

simics::Field::Field ( RegisterInterface parent,
std::string_view  field_name 
)

◆ Field() [3/4]

simics::Field::Field ( const Field )
delete

◆ Field() [4/4]

simics::Field::Field ( Field &&  rhs)

◆ ~Field()

virtual simics::Field::~Field ( )
virtualdefault

Member Function Documentation

◆ description()

const std::string & simics::Field::description ( ) const
overridevirtual

Get the description of the field.

Returns
A reference to the string containing the field description.

Implements simics::FieldInterface.

◆ get()

uint64_t simics::Field::get ( ) const
overridevirtual

◆ init()

void simics::Field::init ( std::string_view  desc,
const bits_type bits,
int8_t  offset 
)
overridevirtual

Initialize the field with a description, size in bits and an offset.

Typically called after the field is instantiated.

Parameters
offsetis the offset of the first bit in the containing register

Implements simics::FieldInterface.

◆ name()

std::string_view simics::Field::name ( ) const
overridevirtual

Get the name of the field without level delimiters.

Returns
A string view representing the field name only.

Implements simics::FieldInterface.

◆ number_of_bits()

unsigned simics::Field::number_of_bits ( ) const
overridevirtual
Returns
the number of bits for this field

Implements simics::FieldInterface.

◆ offset()

size_t simics::Field::offset ( ) const

◆ operator=() [1/2]

Field & simics::Field::operator= ( const Field )
delete

◆ operator=() [2/2]

Field & simics::Field::operator= ( Field &&  rhs)

◆ parent()

RegisterInterface * simics::Field::parent ( ) const
overridevirtual
Returns
the parent register interface

Implements simics::FieldInterface.

◆ read()

uint64_t simics::Field::read ( uint64_t  enabled_bits)
overridevirtual

◆ set()

void simics::Field::set ( uint64_t  value)
overridevirtual

◆ set_bits()

void simics::Field::set_bits ( const bits_type bits)

◆ write()

void simics::Field::write ( uint64_t  value,
uint64_t  enabled_bits 
)
overridevirtual

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