16#ifndef SIMICS_BANK_TEMPLATES_H
17#define SIMICS_BANK_TEMPLATES_H
30template <
typename TBank = Bank,
typename... Args>
32 static_assert(std::is_base_of<Bank, TBank>::value,
33 "TBank must be derived from Bank");
52 uint8_t miss_pattern = 0)
68 std::string_view name_of_bank_memory)
Definition: bank-port-interface.h:31
virtual void set_bank(const bank_t &bank)=0
virtual std::string_view bank_name() const =0
Base class to represent a Simics register bank.
Definition: bank.h:51
void set_miss_pattern(uint8_t miss_pattern) override
Set the miss pattern for the bank.
Definition: bank.h:96
void allocate_bank_memory(std::string_view name)
Allocate memory for this bank by name.
std::string_view name() const override
Get the name of the bank without level delimiters.
Definition: bank.h:70
MappableConfObject * dev_obj() const override
Get the device object.
Definition: bank.h:73
Definition: bank-templates.h:42
BigEndianBank(MappableConfObject *dev_obj, const std::string &name)
Definition: bank-templates.h:44
std::string_view bank_name() const override
Definition: mappable-conf-object.h:134
Definition: bank-templates.h:49
MissPatternBank(MappableConfObject *dev_obj, const std::string &name, uint8_t miss_pattern=0)
Definition: bank-templates.h:51
Definition: bank-templates.h:31
PortBank(BankPortInterface *port_iface, Description desc, Args... args)
Definition: bank-templates.h:35
Normally a bank allocates memory from the device object using the name of the bank as the key.
Definition: bank-templates.h:64
SharedMemoryBank(MappableConfObject *dev_obj, const std::string &name, std::string_view name_of_bank_memory)
Definition: bank-templates.h:67
Definition: after-bank.h:33
ByteOrder
Definition: bank-interface.h:33
std::string_view Description
Type used to describe a resource.
Definition: common-types.h:46