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"
38 template <
typename MODULE,
unsigned int BUSWIDTH=32,
66 "multi_passthrough_initiator_socket");
130 " const not allowed for multi-sockets.");
226 for (
unsigned int i = 0;
i < binders.size();
i++) {
245 "Bind attempt ignored.");
314 template <
typename MODULE,
unsigned int BUSWIDTH=32,
318 MODULE, BUSWIDTH, TYPES, N, sc_core::SC_ZERO_OR_MORE_BOUND>
const char * name() const
sc_interface * get_interface()
virtual sc_core::sc_export< BW_IF > & get_base_export()
virtual BW_IF & get_base_interface()
virtual void bind(base_target_socket_type &s)
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)
tlm::tlm_sync_enum sync_enum_type
std::vector< tlm::tlm_fw_transport_if< TYPES > * > m_used_sockets
~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
tlm::tlm_fw_transport_if< TYPES > * operator[](int i)
std::vector< callback_binder_bw< TYPES > * > m_binders
void before_end_of_elaboration()
std::vector< callback_binder_bw< TYPES > * > & get_binders()
TYPES::tlm_phase_type phase_type
virtual const sc_core::sc_export< tlm::tlm_bw_transport_if< TYPES > > & get_base_export() const
callback_binder_bw< TYPES >::dmi_func_type m_dmi_f
std::vector< tlm::tlm_fw_transport_if< TYPES > * > m_sockets
std::vector< tlm::tlm_fw_transport_if< TYPES > * > & get_sockets()
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
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
static const char * default_name()
void(MODULE::* dmi_cb)(int, sc_dt::uint64, sc_dt::uint64)
TYPES::tlm_payload_type transaction_type
virtual const tlm::tlm_bw_transport_if< TYPES > & get_base_interface() const
base_type * get_hierarch_bind()
multi_passthrough_initiator_socket(const char *name=default_name())
void operator()(base_target_socket_type &s)
const char * sc_gen_unique_name(const char *seed)