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

Normally a bank allocates memory from the device object using the name of the bank as the key. More...

#include <bank-templates.h>

Inheritance diagram for simics::SharedMemoryBank:
simics::Bank simics::BankInterface simics::HierarchicalObject simics::HierarchicalObjectInterface

Public Member Functions

 SharedMemoryBank (MappableConfObject *dev_obj, const std::string &name, std::string_view name_of_bank_memory)
 
- Public Member Functions inherited from simics::Bank
 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
 

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}
 
- Protected Member Functions inherited from simics::Bank
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)
 

Detailed Description

Normally a bank allocates memory from the device object using the name of the bank as the key.

SharedMemoryBank supports using any string when allocating the bank memory. It can be used when multiple banks are sharing the same bank memory.

Constructor & Destructor Documentation

◆ SharedMemoryBank()

simics::SharedMemoryBank::SharedMemoryBank ( MappableConfObject dev_obj,
const std::string &  name,
std::string_view  name_of_bank_memory 
)
inline
Parameters
name_of_bank_memorythe name of the bank memory

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