Base class for Bank, Register, and Field classes. More...
#include <hierarchical-object.h>
Public Member Functions | |
| HierarchicalObject (MappableConfObject *dev_obj, const std::string &name) | |
| Constructor for HierarchicalObject. | |
| virtual | ~HierarchicalObject () |
| HierarchicalObject (const HierarchicalObject &)=delete | |
| HierarchicalObject & | operator= (const HierarchicalObject &)=delete |
| HierarchicalObject (HierarchicalObject &&rhs) noexcept | |
| HierarchicalObject & | operator= (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 |
| MappableConfObject * | dev_obj () const override |
| ConfObjectRef | bank_obj_ref () const override |
| std::string_view | parent_name () const override |
| FieldInterface * | lookup_field (const std::string &name) const override |
| RegisterInterface * | lookup_register (const std::string &name) const override |
| BankInterface * | lookup_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 MappableConfObject * | dev_obj () const =0 |
| virtual ConfObjectRef | bank_obj_ref () const =0 |
| virtual std::string_view | parent_name () const =0 |
| virtual FieldInterface * | lookup_field (const std::string &name) const =0 |
| virtual RegisterInterface * | lookup_register (const std::string &name) const =0 |
| virtual BankInterface * | lookup_bank (const std::string &name) const =0 |
Static Public Member Functions | |
| 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 | |
| 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} |
Base class for Bank, Register, and Field classes.
The HierarchicalObject class serves as a base class for objects used in bank register modeling. A register bank contains registers, and each register can contain fields. This class provides common functionality and interfaces for these hierarchical objects.
| simics::HierarchicalObject::HierarchicalObject | ( | MappableConfObject * | dev_obj, |
| const std::string & | name | ||
| ) |
Constructor for HierarchicalObject.
| dev_obj | Pointer to the device object. |
| name | Unique hierarchical name of a bank/register/field. |
|
virtual |
|
delete |
|
noexcept |
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
Reimplemented in simics::Register.
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
Reimplemented in simics::Register.
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
Reimplemented in simics::Register.
|
inline |
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
Reimplemented in simics::Register.
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
|
static |
|
static |
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
Reimplemented in simics::Register.
|
delete |
|
noexcept |
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
|
overridevirtual |
Implements simics::HierarchicalObjectInterface.
|
static |
Log group ID for Register_Read and Register_Write is fixed.
|
static |
|
static |
|
static |