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

#include <bank.h>

Inheritance diagram for simics::Bank:
simics::BankInterface simics::HierarchicalObject simics::HierarchicalObjectInterface simics::BigEndianBank simics::MissPatternBank simics::PortBank< TBank, Args > simics::SharedMemoryBank

Public Member Functions

 Bank (MappableConfObject *dev_obj, const std::string &name)
 
 Bank (MappableConfObject *dev_obj, const std::string &name, ByteOrder byte_order)
 
 Bank (const Bank &)=delete
 
Bankoperator= (const Bank &)=delete
 
 Bank (Bank &&rhs)
 
Bankoperator= (Bank &&rhs)
 
std::string_view name () const override
 
MappableConfObjectdev_obj () const override
 
const std::string & description () const override
 
void set_description (std::string_view desc) override
 
void add_register (const register_t &reg) override
 
void add_register (std::string_view name, std::string_view desc, Offset offset, ByteSize number_of_bytes, InitValue init_value, const std::vector< field_t > &fields) override
 
unsigned number_of_registers () const override
 
std::pair< size_t, RegisterInterface * > register_at_index (unsigned index) const override
 
const std::map< size_t, RegisterInterface * > & mapped_registers () const override
 
void set_callbacks (BankIssueCallbacksInterface *callbacks) override
 
ByteOrder get_byte_order () const override
 
void set_miss_pattern (uint8_t miss_pattern) override
 
exception_type_t transaction_access (transaction_t *t, uint64_t offset) override
 
- Public Member Functions inherited from simics::BankInterface
virtual ~BankInterface ()=default
 
virtual std::string_view name () const =0
 
virtual MappableConfObjectdev_obj () const =0
 
virtual const std::string & description () const =0
 
virtual void set_description (std::string_view desc)=0
 
virtual void add_register (const register_t &reg)=0
 
virtual void add_register (std::string_view name, std::string_view desc, Offset offset, ByteSize number_of_bytes, InitValue init_value, const std::vector< field_t > &fields)=0
 
virtual unsigned number_of_registers () const =0
 
virtual std::pair< size_t, RegisterInterface * > register_at_index (unsigned index) const =0
 
virtual const std::map< size_t, RegisterInterface * > & mapped_registers () const =0
 
virtual void set_callbacks (BankIssueCallbacksInterface *callbacks)=0
 
virtual ByteOrder get_byte_order () const =0
 
virtual void set_miss_pattern (uint8_t miss_pattern)=0
 
virtual exception_type_t transaction_access (transaction_t *t, uint64_t offset)=0
 
- Public Member Functions inherited from simics::HierarchicalObject
 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
 

Protected Member Functions

virtual std::vector< uint8_t > read (uint64_t offset, size_t size, Inquiry inquiry=Inquiry::NonInquiry) const
 
virtual void write (uint64_t offset, const std::vector< uint8_t > &value, size_t size, Inquiry inquiry=Inquiry::NonInquiry) const
 
virtual void unmapped_read (size_t offset, size_t size) const
 
virtual void unmapped_write (size_t offset, size_t size) const
 
void allocate_bank_memory (std::string_view name)
 

Additional Inherited Members

- Static Public Member Functions inherited from simics::HierarchicalObject
static bool is_valid_hierarchical_name (std::string_view name)
 
static int 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}
 

Constructor & Destructor Documentation

◆ Bank() [1/4]

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

◆ Bank() [2/4]

simics::Bank::Bank ( MappableConfObject dev_obj,
const std::string &  name,
ByteOrder  byte_order 
)
inline

◆ Bank() [3/4]

simics::Bank::Bank ( const Bank )
delete

◆ Bank() [4/4]

simics::Bank::Bank ( Bank &&  rhs)
inline

Member Function Documentation

◆ add_register() [1/2]

void simics::Bank::add_register ( const register_t reg)
overridevirtual

Implements simics::BankInterface.

◆ add_register() [2/2]

void simics::Bank::add_register ( std::string_view  name,
std::string_view  desc,
Offset  offset,
ByteSize  number_of_bytes,
InitValue  init_value,
const std::vector< field_t > &  fields 
)
overridevirtual

Implements simics::BankInterface.

◆ allocate_bank_memory()

void simics::Bank::allocate_bank_memory ( std::string_view  name)
protected

◆ description()

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

Implements simics::BankInterface.

◆ dev_obj()

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

Implements simics::BankInterface.

◆ get_byte_order()

ByteOrder simics::Bank::get_byte_order ( ) const
inlineoverridevirtual

Implements simics::BankInterface.

◆ mapped_registers()

const std::map< size_t, RegisterInterface * > & simics::Bank::mapped_registers ( ) const
overridevirtual

Implements simics::BankInterface.

◆ name()

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

Implements simics::BankInterface.

◆ number_of_registers()

unsigned simics::Bank::number_of_registers ( ) const
inlineoverridevirtual

Implements simics::BankInterface.

◆ operator=() [1/2]

Bank & simics::Bank::operator= ( Bank &&  rhs)
inline

◆ operator=() [2/2]

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

◆ read()

virtual std::vector< uint8_t > simics::Bank::read ( uint64_t  offset,
size_t  size,
Inquiry  inquiry = Inquiry::NonInquiry 
) const
protectedvirtual

◆ register_at_index()

std::pair< size_t, RegisterInterface * > simics::Bank::register_at_index ( unsigned  index) const
overridevirtual

Implements simics::BankInterface.

◆ set_callbacks()

void simics::Bank::set_callbacks ( BankIssueCallbacksInterface callbacks)
inlineoverridevirtual

Implements simics::BankInterface.

◆ set_description()

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

Implements simics::BankInterface.

◆ set_miss_pattern()

void simics::Bank::set_miss_pattern ( uint8_t  miss_pattern)
inlineoverridevirtual

Implements simics::BankInterface.

◆ transaction_access()

exception_type_t simics::Bank::transaction_access ( transaction_t t,
uint64_t  offset 
)
overridevirtual

Implements simics::BankInterface.

◆ unmapped_read()

virtual void simics::Bank::unmapped_read ( size_t  offset,
size_t  size 
) const
protectedvirtual

◆ unmapped_write()

virtual void simics::Bank::unmapped_write ( size_t  offset,
size_t  size 
) const
protectedvirtual

◆ write()

virtual void simics::Bank::write ( uint64_t  offset,
const std::vector< uint8_t > &  value,
size_t  size,
Inquiry  inquiry = Inquiry::NonInquiry 
) const
protectedvirtual

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