C++ Device API Reference Manual
Reference documentation for the Simics C++ Device API.
 
Loading...
Searching...
No Matches
simics::BankPort< TParent > Class Template Reference

Extends Port with bank required interfaces. More...

#include <bank-port.h>

Inheritance diagram for simics::BankPort< TParent >:
simics::Port< TParent > simics::BankPortInterface simics::BankInstrumentationSubscribeConnection simics::ConfObject simics::BankIssueCallbacksInterface simics::ConfObjectInterface

Public Member Functions

 BankPort (ConfObjectRef o)
 
 BankPort (ConfObjectRef o, const bank_t *bank)
 
 BankPort (const BankPort &)=delete
 
BankPortoperator= (const BankPort &)=delete
 
virtual ~BankPort ()
 
std::string_view bank_name () const override
 
const BankInterfacebank_iface () const override
 
MappableConfObjectdev_obj () const override
 
void set_bank (const bank_t &bank) override
 
exception_type_t issue (transaction_t *t, uint64 addr) override
 
const char * description () override
 
bool big_endian_bitorder () override
 
unsigned number_of_registers () override
 
attr_value_t register_info (unsigned reg) override
 
uint64 get_register_value (unsigned reg) override
 
void set_register_value (unsigned reg, uint64 val) override
 
bool is_read_only (unsigned reg) override
 
attr_value_t register_names () override
 
attr_value_t register_offsets () override
 
- Public Member Functions inherited from simics::Port< TParent >
 Port (const ConfObjectRef &obj)
 
virtual ~Port ()=default
 
ParentTypeparent () const
 
const std::string & name () const
 
int index () const
 
- Public Member Functions inherited from simics::ConfObject
 ConfObject (const ConfObjectRef &obj)
 Create a ConfObject from ConfObjectRef.
 
virtual ~ConfObject ()=default
 
void finalize () override
 
void objects_finalized () override
 
ConfObjectRef obj () const
 Return a ConfObjectRef represents this object.
 
virtual bool finalized ()
 Return if the finalize method has been called.
 
- Public Member Functions inherited from simics::ConfObjectInterface
virtual ~ConfObjectInterface ()=default
 
virtual void finalize ()=0
 
virtual void objects_finalized ()=0
 
- Public Member Functions inherited from simics::BankPortInterface
virtual ~BankPortInterface ()=default
 
virtual std::string_view bank_name () const =0
 
virtual const BankInterfacebank_iface () const =0
 
virtual MappableConfObjectdev_obj () const =0
 
virtual bool validate_bank_iface () const =0
 
virtual void set_bank (const bank_t &bank)=0
 
- Public Member Functions inherited from simics::BankInstrumentationSubscribeConnection
 BankInstrumentationSubscribeConnection ()
 
virtual ~BankInstrumentationSubscribeConnection ()=default
 
bank_callback_handle_t register_after_read (conf_object_t *connection, uint64 offset, uint64 size, after_read_callback_t after_read, lang_void *user_data) override
 
bank_callback_handle_t register_after_write (conf_object_t *connection, uint64 offset, uint64 size, after_write_callback_t after_write, lang_void *user_data) override
 
bank_callback_handle_t register_before_read (conf_object_t *connection, uint64 offset, uint64 size, before_read_callback_t before_read, lang_void *user_data) override
 
bank_callback_handle_t register_before_write (conf_object_t *connection, uint64 offset, uint64 size, before_write_callback_t before_write, lang_void *user_data) override
 
void remove_callback (bank_callback_handle_t callback) override
 
void remove_connection_callbacks (conf_object_t *connection) override
 
void enable_connection_callbacks (conf_object_t *connection) override
 
void disable_connection_callbacks (conf_object_t *connection) override
 
attr_value_t get_connections () override
 
bool move_before (conf_object_t *connection, conf_object_t *before) override
 
void issue_callbacks (BankAccess *access, CallbackType type) const override
 
bool empty () const
 
unsigned int number_of_callbacks () const
 
- Public Member Functions inherited from simics::BankIssueCallbacksInterface
virtual ~BankIssueCallbacksInterface ()=default
 
virtual void issue_callbacks (BankAccess *handle, CallbackType type) const =0
 

Static Public Member Functions

static void addBankProperties (ConfClass *cls)
 Adds bank properties to the given class.
 

Additional Inherited Members

- Public Types inherited from simics::Port< TParent >
using ParentType = TParent
 

Detailed Description

template<typename TParent>
class simics::BankPort< TParent >

Extends Port with bank required interfaces.

Each bank resides inside a port object. Each port object contains exactly one bank, the name of the bank is determined by the CTOR parameter o. The instance of this class must have a valid bank interface to direct the received Simics interface calls.

Template Parameters
TParentthe parent class of the port object, see @Port

Constructor & Destructor Documentation

◆ BankPort() [1/3]

template<typename TParent >
simics::BankPort< TParent >::BankPort ( ConfObjectRef  o)
inlineexplicit

◆ BankPort() [2/3]

template<typename TParent >
simics::BankPort< TParent >::BankPort ( ConfObjectRef  o,
const bank_t bank 
)
inline

◆ BankPort() [3/3]

template<typename TParent >
simics::BankPort< TParent >::BankPort ( const BankPort< TParent > &  )
delete

◆ ~BankPort()

template<typename TParent >
virtual simics::BankPort< TParent >::~BankPort ( )
inlinevirtual

Member Function Documentation

◆ addBankProperties()

template<typename TParent >
static void simics::BankPort< TParent >::addBankProperties ( ConfClass cls)
inlinestatic

Adds bank properties to the given class.

◆ bank_iface()

template<typename TParent >
const BankInterface * simics::BankPort< TParent >::bank_iface ( ) const
inlineoverridevirtual

◆ bank_name()

template<typename TParent >
std::string_view simics::BankPort< TParent >::bank_name ( ) const
inlineoverridevirtual

◆ big_endian_bitorder()

template<typename TParent >
bool simics::BankPort< TParent >::big_endian_bitorder ( )
inlineoverride

◆ description()

template<typename TParent >
const char * simics::BankPort< TParent >::description ( )
inlineoverride

◆ dev_obj()

template<typename TParent >
MappableConfObject * simics::BankPort< TParent >::dev_obj ( ) const
inlineoverridevirtual

◆ get_register_value()

template<typename TParent >
uint64 simics::BankPort< TParent >::get_register_value ( unsigned  reg)
inlineoverride

◆ is_read_only()

template<typename TParent >
bool simics::BankPort< TParent >::is_read_only ( unsigned  reg)
inlineoverride

◆ issue()

template<typename TParent >
exception_type_t simics::BankPort< TParent >::issue ( transaction_t *  t,
uint64  addr 
)
inlineoverride

◆ number_of_registers()

template<typename TParent >
unsigned simics::BankPort< TParent >::number_of_registers ( )
inlineoverride

◆ operator=()

template<typename TParent >
BankPort & simics::BankPort< TParent >::operator= ( const BankPort< TParent > &  )
delete

◆ register_info()

template<typename TParent >
attr_value_t simics::BankPort< TParent >::register_info ( unsigned  reg)
inlineoverride

◆ register_names()

template<typename TParent >
attr_value_t simics::BankPort< TParent >::register_names ( )
inlineoverride

◆ register_offsets()

template<typename TParent >
attr_value_t simics::BankPort< TParent >::register_offsets ( )
inlineoverride

◆ set_bank()

template<typename TParent >
void simics::BankPort< TParent >::set_bank ( const bank_t bank)
inlineoverridevirtual

◆ set_register_value()

template<typename TParent >
void simics::BankPort< TParent >::set_register_value ( unsigned  reg,
uint64  val 
)
inlineoverride

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