Normally a bank allocates memory from the device object using the name of the bank as the key.
More...
|
| | SharedMemoryBank (MappableConfObject *dev_obj, const std::string &name, std::string_view name_of_bank_memory) |
| |
| | Bank (MappableConfObject *dev_obj, const std::string &name) |
| |
| | Bank (MappableConfObject *dev_obj, const std::string &name, ByteOrder byte_order) |
| |
| | Bank (const Bank &)=delete |
| |
| Bank & | operator= (const Bank &)=delete |
| |
| | Bank (Bank &&rhs) |
| |
| Bank & | operator= (Bank &&rhs) |
| |
| std::string_view | name () const override |
| |
| MappableConfObject * | dev_obj () const override |
| |
| const std::string & | description () const override |
| |
| void | set_description (std::string_view desc) override |
| |
| void | add_register (const register_t ®) 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 |
| |
| virtual | ~BankInterface ()=default |
| |
| virtual std::string_view | name () const =0 |
| |
| virtual MappableConfObject * | dev_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 ®)=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 |
| |
| | 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 |
| |
| HierarchicalObject & | operator= (const HierarchicalObject &)=delete |
| |
| | HierarchicalObject (HierarchicalObject &&rhs) noexcept |
| |
| HierarchicalObject & | operator= (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 |
| |
| MappableConfObject * | dev_obj () const override |
| |
| ConfObjectRef | bank_obj_ref () const override |
| |
| template<typename T > |
| T * | dev_ptr () |
| |
| 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 |
| |
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.