16#ifndef SIMICS_IFACE_BANK_INTERFACE_H
17#define SIMICS_IFACE_BANK_INTERFACE_H
19#include <simics/base/memory.h>
27#include "../type/register-type.h"
38class MappableConfObject;
39class RegisterInterface;
40class BankIssueCallbacksInterface;
50 virtual std::string_view
name()
const = 0;
68 const std::vector<field_t> &fields) = 0;
79 unsigned index)
const = 0;
82 virtual const std::map<size_t, RegisterInterface *> &
107 uint64_t offset) = 0;
struct transaction transaction_t
Definition: bank-interface.h:30
Definition: bank-interface.h:45
virtual void set_description(std::string_view desc)=0
virtual std::string_view name() const =0
virtual unsigned number_of_registers() const =0
virtual void add_register(const register_t ®)=0
virtual void set_callbacks(BankIssueCallbacksInterface *callbacks)=0
virtual MappableConfObject * dev_obj() const =0
virtual ~BankInterface()=default
virtual const std::map< size_t, RegisterInterface * > & mapped_registers() const =0
virtual exception_type_t transaction_access(transaction_t *t, uint64_t offset)=0
virtual std::pair< size_t, RegisterInterface * > register_at_index(unsigned index) const =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 const std::string & description() const =0
virtual ByteOrder get_byte_order() const =0
virtual void set_miss_pattern(uint8_t miss_pattern)=0
Definition: bank-issue-callbacks-interface.h:31
Definition: mappable-conf-object.h:131
Literal type that extends size_t type.
Definition: common-types.h:27
Definition: attr-value.h:23
ByteOrder
Definition: bank-interface.h:34
std::tuple< Name, Description, Offset, ByteSize, InitValue, std::vector< field_t > > register_t
Definition: register-type.h:45