19#ifndef __SYSTEMC_EXT_TLM_UTILS_MULTI_PASSTHROUGH_INITIATOR_SOCKET_H__
20#define __SYSTEMC_EXT_TLM_UTILS_MULTI_PASSTHROUGH_INITIATOR_SOCKET_H__
22#include "tlm_utils/multi_socket_bases.h"
38template <
typename MODULE,
unsigned int BUSWIDTH=32,
66 "multi_passthrough_initiator_socket");
78 for (
unsigned int i = 0; i <
m_binders.size(); i++)
94 m_nb_f.set_function(mod, cb);
130 " const not allowed for multi-sockets.");
226 for (
unsigned int i = 0; i < binders.size(); i++) {
245 "Bind attempt ignored.");
314template <
typename MODULE,
unsigned int BUSWIDTH=32,
318 MODULE, BUSWIDTH, TYPES, N, sc_core::SC_ZERO_OR_MORE_BOUND>
sc_interface * get_interface()
void bind(sc_interface &)
virtual sc_core::sc_export< tlm_bw_transport_if< tlm::tlm_base_protocol_types > > & get_base_export()=0
virtual tlm_bw_transport_if< tlm::tlm_base_protocol_types > & get_base_interface()=0
invalidate_dmi_functor< TYPES > dmi_func_type
nb_transport_functor< TYPES > nb_func_type
void display_warning(const char *msg) const
void display_error(const char *msg) const
virtual std::vector< callback_binder_bw< TYPES > * > & get_binders()=0
virtual std::vector< tlm::tlm_fw_transport_if< TYPES > * > & get_sockets()=0
virtual multi_init_base * get_hierarch_bind()=0
multi_passthrough_initiator_socket< MODULE, BUSWIDTH, TYPES, N, sc_core::SC_ZERO_OR_MORE_BOUND > socket_b
multi_passthrough_initiator_socket_optional()
multi_passthrough_initiator_socket_optional(const char *name)
base_type * get_hierarch_bind()
tlm::tlm_sync_enum sync_enum_type
std::vector< tlm::tlm_fw_transport_if< TYPES > * > m_used_sockets
virtual const tlm::tlm_bw_transport_if< TYPES > & get_base_interface() const
~multi_passthrough_initiator_socket()
virtual void bind(base_target_socket_type &s)
virtual sc_core::sc_export< tlm::tlm_bw_transport_if< TYPES > > & get_base_export()
callback_binder_bw< TYPES >::nb_func_type m_nb_f
base_type::base_target_socket_type base_target_socket_type
std::vector< callback_binder_bw< TYPES > * > m_binders
std::vector< tlm::tlm_fw_transport_if< TYPES > * > & get_sockets()
void before_end_of_elaboration()
std::vector< callback_binder_bw< TYPES > * > & get_binders()
TYPES::tlm_phase_type phase_type
callback_binder_bw< TYPES >::dmi_func_type m_dmi_f
std::vector< tlm::tlm_fw_transport_if< TYPES > * > m_sockets
tlm::tlm_fw_transport_if< TYPES > * operator[](int i)
virtual tlm::tlm_bw_transport_if< TYPES > & get_base_interface()
sync_enum_type(MODULE::* nb_cb)(int, transaction_type &, phase_type &, sc_core::sc_time &)
void register_nb_transport_bw(MODULE *mod, sync_enum_type(MODULE::*cb)(int, transaction_type &, phase_type &, sc_core::sc_time &))
virtual void bind(base_type &s)
multi_init_base< BUSWIDTH, TYPES, N, POL > base_type
virtual const sc_core::sc_export< tlm::tlm_bw_transport_if< TYPES > > & get_base_export() const
base_type * m_hierarch_bind
void register_invalidate_direct_mem_ptr(MODULE *mod, void(MODULE::*cb)(int, sc_dt::uint64, sc_dt::uint64))
callback_binder_bw< TYPES > m_dummy
void(MODULE::* dmi_cb)(int, sc_dt::uint64, sc_dt::uint64)
TYPES::tlm_payload_type transaction_type
multi_passthrough_initiator_socket(const char *name=default_name())
static const char * default_name()
void operator()(base_target_socket_type &s)
const char * sc_gen_unique_name(const char *seed)
const std::string & name()