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

#include <hierarchical-object.h>

Inheritance diagram for simics::HierarchicalObject:
simics::HierarchicalObjectInterface simics::Bank simics::Field simics::Register simics::BigEndianBank simics::MissPatternBank simics::PortBank< TBank, Args > simics::SharedMemoryBank 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 simics::AliasRegister simics::BankRegister< TRegister, Args > simics::ClearOnReadRegister simics::ConstantRegister simics::DesignLimitationRegister simics::IgnoreWriteRegister simics::Read0Register simics::ReadConstantRegister simics::ReadOnlyRegister simics::ReadUnimplRegister simics::ReservedRegister simics::SilentConstantRegister simics::SilentUnimplRegister simics::UndocumentedRegister simics::UnimplRegister simics::UnmappedRegister simics::Write0OnlyRegister simics::Write1ClearsRegister simics::Write1OnlyRegister simics::WriteOnceRegister simics::WriteOnlyRegister simics::WriteUnimplRegister

Public Member Functions

 HierarchicalObject (MappableConfObject *dev_obj, const std::string &name)
 
 HierarchicalObject (MappableConfObject *dev_obj, const std::string &name, FieldInterface *iface)
 
 HierarchicalObject (MappableConfObject *dev_obj, const std::string &name, RegisterInterface *iface)
 
 HierarchicalObject (MappableConfObject *dev_obj, const std::string &name, BankInterface *iface)
 
virtual ~HierarchicalObject ()
 
 HierarchicalObject (const HierarchicalObject &)=delete
 
HierarchicalObjectoperator= (const HierarchicalObject &)=delete
 
 HierarchicalObject (HierarchicalObject &&rhs) noexcept
 
HierarchicalObjectoperator= (HierarchicalObject &&rhs) noexcept
 
void init_iface (BankInterface *iface)
 
void init_iface (RegisterInterface *iface)
 
void init_iface (FieldInterface *iface)
 
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
 
template<typename T >
T * dev_ptr ()
 
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
 

Static Public Member Functions

static bool is_valid_hierarchical_name (std::string_view name)
 
static int 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}
 

Constructor & Destructor Documentation

◆ HierarchicalObject() [1/6]

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

◆ HierarchicalObject() [2/6]

simics::HierarchicalObject::HierarchicalObject ( MappableConfObject dev_obj,
const std::string &  name,
FieldInterface iface 
)
inline

◆ HierarchicalObject() [3/6]

simics::HierarchicalObject::HierarchicalObject ( MappableConfObject dev_obj,
const std::string &  name,
RegisterInterface iface 
)
inline

◆ HierarchicalObject() [4/6]

simics::HierarchicalObject::HierarchicalObject ( MappableConfObject dev_obj,
const std::string &  name,
BankInterface iface 
)
inline

◆ ~HierarchicalObject()

virtual simics::HierarchicalObject::~HierarchicalObject ( )
inlinevirtual

◆ HierarchicalObject() [5/6]

simics::HierarchicalObject::HierarchicalObject ( const HierarchicalObject )
delete

◆ HierarchicalObject() [6/6]

simics::HierarchicalObject::HierarchicalObject ( HierarchicalObject &&  rhs)
inlinenoexcept

Member Function Documentation

◆ bank_name()

std::string_view simics::HierarchicalObject::bank_name ( ) const
inlineoverridevirtual

◆ bank_obj_ref()

ConfObjectRef simics::HierarchicalObject::bank_obj_ref ( ) const
inlineoverridevirtual

◆ description()

const std::string & simics::HierarchicalObject::description ( ) const
inlineoverridevirtual

◆ dev_obj()

MappableConfObject * simics::HierarchicalObject::dev_obj ( ) const
inlineoverridevirtual

◆ dev_ptr()

template<typename T >
T * simics::HierarchicalObject::dev_ptr ( )
inline

◆ hierarchical_name()

const std::string & simics::HierarchicalObject::hierarchical_name ( ) const
inlineoverridevirtual

◆ hierarchy_level()

Level simics::HierarchicalObject::hierarchy_level ( ) const
inlineoverridevirtual

◆ init_iface() [1/3]

void simics::HierarchicalObject::init_iface ( BankInterface iface)
inline

◆ init_iface() [2/3]

void simics::HierarchicalObject::init_iface ( FieldInterface iface)
inline

◆ init_iface() [3/3]

void simics::HierarchicalObject::init_iface ( RegisterInterface iface)
inline

◆ is_valid_hierarchical_name()

static bool simics::HierarchicalObject::is_valid_hierarchical_name ( std::string_view  name)
inlinestatic

◆ level_of_hierarchical_name()

static int simics::HierarchicalObject::level_of_hierarchical_name ( std::string_view  name)
inlinestatic

◆ lookup_bank()

BankInterface * simics::HierarchicalObject::lookup_bank ( const std::string &  name) const
inlineoverridevirtual

◆ lookup_field()

FieldInterface * simics::HierarchicalObject::lookup_field ( const std::string &  name) const
inlineoverridevirtual

◆ lookup_register()

RegisterInterface * simics::HierarchicalObject::lookup_register ( const std::string &  name) const
inlineoverridevirtual

◆ name()

std::string_view simics::HierarchicalObject::name ( ) const
inlineoverridevirtual

◆ operator=() [1/2]

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

◆ operator=() [2/2]

HierarchicalObject & simics::HierarchicalObject::operator= ( HierarchicalObject &&  rhs)
inlinenoexcept

◆ parent_name()

std::string_view simics::HierarchicalObject::parent_name ( ) const
inlineoverridevirtual

◆ set_description()

void simics::HierarchicalObject::set_description ( std::string_view  desc)
inlineoverridevirtual

Member Data Documentation

◆ Register_Read

const uint64_t simics::HierarchicalObject::Register_Read {1}
static

Log group ID for Register_Read and Register_Write is fixed.

◆ Register_Write

const uint64_t simics::HierarchicalObject::Register_Write {2}
static

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