Go to the documentation of this file.
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,
41 class multi_passthrough_initiator_socket :
42 public multi_init_base< BUSWIDTH, TYPES, N, POL>
49 typedef typename TYPES::tlm_phase_type
phase_type;
57 typedef multi_init_base<BUSWIDTH, TYPES, N, POL>
base_type;
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>
void register_nb_transport_bw(MODULE *mod, sync_enum_type(MODULE::*cb)(int, transaction_type &, phase_type &, sc_core::sc_time &))
multi_init_base< BUSWIDTH, TYPES, N, POL > base_type
base_type * get_hierarch_bind()
nb_transport_functor< TYPES > nb_func_type
void(MODULE::* dmi_cb)(int, sc_dt::uint64, sc_dt::uint64)
std::vector< tlm::tlm_fw_transport_if< TYPES > * > m_sockets
int mod(int val, int mod)
invalidate_dmi_functor< TYPES > dmi_func_type
std::vector< tlm::tlm_fw_transport_if< TYPES > * > & get_sockets()
multi_passthrough_initiator_socket_optional()
virtual tlm_bw_transport_if< tlm::tlm_base_protocol_types > & get_base_interface()
void display_warning(const char *msg) const
std::vector< callback_binder_bw< TYPES > * > & get_binders()
callback_binder_bw< TYPES >::nb_func_type m_nb_f
callback_binder_bw< TYPES >::dmi_func_type m_dmi_f
void register_invalidate_direct_mem_ptr(MODULE *mod, void(MODULE::*cb)(int, sc_dt::uint64, sc_dt::uint64))
base_type * m_hierarch_bind
static const char * default_name()
tlm::tlm_fw_transport_if< TYPES > * operator[](int i)
void before_end_of_elaboration()
virtual sc_core::sc_export< tlm_bw_transport_if< tlm::tlm_base_protocol_types > > & get_base_export()
multi_passthrough_initiator_socket< MODULE, BUSWIDTH, TYPES, N, sc_core::SC_ZERO_OR_MORE_BOUND > socket_b
sync_enum_type(MODULE::* nb_cb)(int, transaction_type &, phase_type &, sc_core::sc_time &)
TYPES::tlm_payload_type transaction_type
void display_error(const char *msg) const
const char * sc_gen_unique_name(const char *seed)
virtual std::vector< tlm::tlm_fw_transport_if< TYPES > * > & get_sockets()=0
virtual void bind(base_target_socket_type &s)
base_type::base_target_socket_type base_target_socket_type
std::vector< tlm::tlm_fw_transport_if< TYPES > * > m_used_sockets
tlm::tlm_sync_enum sync_enum_type
std::vector< callback_binder_bw< TYPES > * > m_binders
virtual multi_init_base * get_hierarch_bind()=0
virtual void bind(base_target_socket_type &s)
TYPES::tlm_phase_type phase_type
const char * name() const
callback_binder_bw< TYPES > m_dummy
virtual tlm::tlm_bw_transport_if< TYPES > & get_base_interface()
virtual sc_core::sc_export< tlm::tlm_bw_transport_if< TYPES > > & get_base_export()
void operator()(base_target_socket_type &s)
virtual std::vector< callback_binder_bw< TYPES > * > & get_binders()=0
~multi_passthrough_initiator_socket()
sc_interface * get_interface()
multi_passthrough_initiator_socket(const char *name=default_name())
Generated on Wed Sep 30 2020 14:02:16 for gem5 by doxygen 1.8.17