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");
94 m_nb_f.set_function(mod, cb);
100 int, sc_dt::uint64, sc_dt::uint64))
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>
virtual void bind(base_target_socket_type &s)
virtual sc_core::sc_export< tlm::tlm_bw_transport_if< TYPES > > & get_base_export()
tlm_base_target_socket_b< BUSWIDTH, fw_interface_type, bw_interface_type > base_target_socket_type
callback_binder_bw< TYPES >::nb_func_type m_nb_f
multi_passthrough_initiator_socket_optional(const char *name)
~multi_passthrough_initiator_socket()
tlm::tlm_fw_transport_if< TYPES > * operator[](int i)
sc_interface * get_interface()
base_type::base_target_socket_type base_target_socket_type
const char * sc_gen_unique_name(const char *seed)
virtual const tlm::tlm_bw_transport_if< TYPES > & get_base_interface() const
std::vector< tlm::tlm_fw_transport_if< TYPES > * > & get_sockets()
virtual multi_init_base * get_hierarch_bind()=0
const char * name() const
std::vector< tlm::tlm_fw_transport_if< TYPES > * > m_sockets
callback_binder_bw< TYPES > m_dummy
std::vector< tlm::tlm_fw_transport_if< TYPES > * > m_used_sockets
std::vector< callback_binder_bw< TYPES > * > & get_binders()
tlm::tlm_sync_enum sync_enum_type
void before_end_of_elaboration()
callback_binder_bw< TYPES >::dmi_func_type m_dmi_f
void operator()(base_target_socket_type &s)
virtual void bind(base_type &s)
void register_nb_transport_bw(MODULE *mod, sync_enum_type(MODULE::*cb)(int, transaction_type &, phase_type &, sc_core::sc_time &))
sync_enum_type(MODULE::* nb_cb)(int, transaction_type &, phase_type &, sc_core::sc_time &)
virtual void bind(base_target_socket_type &s)
multi_passthrough_initiator_socket(const char *name=default_name())
base_type * m_hierarch_bind
virtual sc_core::sc_export< tlm_bw_transport_if< TYPES > > & get_base_export()
void display_error(const char *msg) const
multi_passthrough_initiator_socket_optional()
int mod(int val, int mod)
void(MODULE::* dmi_cb)(int, sc_dt::uint64, sc_dt::uint64)
base_type * get_hierarch_bind()
virtual const sc_core::sc_export< tlm::tlm_bw_transport_if< TYPES > > & get_base_export() const
virtual tlm::tlm_bw_transport_if< TYPES > & get_base_interface()
TYPES::tlm_phase_type phase_type
nb_transport_functor< TYPES > nb_func_type
multi_passthrough_initiator_socket< MODULE, BUSWIDTH, TYPES, N, sc_core::SC_ZERO_OR_MORE_BOUND > socket_b
void display_warning(const char *msg) const
virtual std::vector< tlm::tlm_fw_transport_if< TYPES > * > & get_sockets()=0
invalidate_dmi_functor< TYPES > dmi_func_type
void register_invalidate_direct_mem_ptr(MODULE *mod, void(MODULE::*cb)(int, sc_dt::uint64, sc_dt::uint64))
std::vector< callback_binder_bw< TYPES > * > m_binders
TYPES::tlm_payload_type transaction_type
multi_init_base< BUSWIDTH, TYPES, N, POL > base_type
static const char * default_name()
virtual tlm_bw_transport_if< TYPES > & get_base_interface()
virtual std::vector< callback_binder_bw< TYPES > * > & get_binders()=0
virtual tlm::tlm_fw_transport_if< TYPES > * get_last_binder(tlm::tlm_bw_transport_if< TYPES > *)=0