20 #ifndef __SYSTEMC_EXT_TLM_UTILS_PASSTHROUGH_TARGET_SOCKET_H__ 21 #define __SYSTEMC_EXT_TLM_UTILS_PASSTHROUGH_TARGET_SOCKET_H__ 23 #include "../core/sc_port.hh" 24 #include "../core/sc_time.hh" 25 #include "../tlm_core/2/sockets/target_socket.hh" 26 #include "../utils/sc_report_handler.hh" 32 template <
typename MODULE,
unsigned int BUSWIDTH,
typename TYPES,
64 sync_enum_type (MODULE::*cb)(transaction_type &, phase_type &,
79 unsigned int (MODULE::*cb)(transaction_type &))
151 "get DMI pointer callback already registered");
160 transaction_type &trans, phase_type &phase,
225 template <
typename MODULE,
unsigned int BUSWIDTH=32,
236 template <
typename MODULE,
unsigned int BUSWIDTH=32,
240 MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND>
251 template <
typename MODULE,
unsigned int BUSWIDTH,
typename TYPES,
269 "passthrough_target_socket_tagged");
284 sync_enum_type (MODULE::*cb)(
int id, transaction_type &,
294 void (MODULE::*cb)(
int id, transaction_type &,
304 unsigned int (MODULE::*cb)(
int id, transaction_type &),
int id)
312 bool (MODULE::*cb)(
int id, transaction_type &,
tlm::tlm_dmi &),
329 int id, transaction_type &);
337 m_nb_transport_user_id(0), m_b_transport_user_id(0),
338 m_transport_dbg_user_id(0), m_get_dmi_user_id(0)
344 m_nb_transport_user_id =
id;
349 m_b_transport_user_id =
id;
354 m_transport_dbg_user_id =
id;
359 m_get_dmi_user_id =
id;
403 "get DMI pointer callback already registered");
419 m_nb_transport_user_id, trans, phase,
t);
432 m_b_transport_user_id, trans,
t);
444 m_transport_dbg_user_id, trans);
457 m_get_dmi_user_id, trans, dmi_data);
485 template <
typename MODULE,
unsigned int BUSWIDTH=32,
499 template <
typename MODULE,
unsigned int BUSWIDTH=32,
503 MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND>
tlm::tlm_bw_transport_if< TYPES > bw_interface_type
static const char * default_name()
void register_get_direct_mem_ptr(MODULE *mod, bool(MODULE::*cb)(transaction_type &, tlm::tlm_dmi &))
TYPES::tlm_payload_type transaction_type
void set_nb_transport_ptr(MODULE *mod, NBTransportPtr p)
passthrough_target_socket_tagged(const char *name)
void set_get_direct_mem_ptr(MODULE *mod, GetDirectMem_ptr p)
void register_transport_dbg(MODULE *mod, unsigned int(MODULE::*cb)(int id, transaction_type &), int id)
passthrough_target_socket(const char *name)
int m_b_transport_user_id
TransportDbgPtr m_transport_dbg_ptr
void set_start_address(sc_dt::uint64 addr)
GetDirectMem_ptr m_get_direct_mem_ptr
const char * sc_gen_unique_name(const char *seed)
unsigned int transport_dbg(transaction_type &trans)
void set_transport_dbg_user_id(int id)
void set_get_direct_mem_ptr(MODULE *mod, GetDirectMem_ptr p)
const char * name() const
const sc_core::sc_object * get_socket() const
void register_b_transport(MODULE *mod, void(MODULE::*cb)(int id, transaction_type &, sc_core::sc_time &), int id)
TransportDbgPtr m_transport_dbg_ptr
void b_transport(transaction_type &trans, sc_core::sc_time &t)
tlm::tlm_sync_enum sync_enum_type
BTransportPtr m_b_transport_ptr
tlm::tlm_fw_transport_if< TYPES > fw_interface_type
passthrough_target_socket_optional(const char *name)
void display_warning(const char *msg) const
void set_nb_transport_user_id(int id)
passthrough_target_socket_optional()
void b_transport(transaction_type &trans, sc_core::sc_time &t)
void set_transport_dbg_ptr(MODULE *mod, TransportDbgPtr p)
tlm::tlm_bw_transport_if< TYPES > bw_interface_type
virtual void bind(base_initiator_socket_type &s)
int m_transport_dbg_user_id
sync_enum_type nb_transport_fw(transaction_type &trans, phase_type &phase, sc_core::sc_time &t)
tlm::tlm_sync_enum sync_enum_type
tlm::tlm_target_socket< BUSWIDTH, TYPES, 1, POL > base_type
passthrough_target_socket_tagged()
sync_enum_type nb_transport_fw(transaction_type &trans, phase_type &phase, sc_core::sc_time &t)
process(passthrough_socket_base *owner)
void register_nb_transport_fw(MODULE *mod, sync_enum_type(MODULE::*cb)(transaction_type &, phase_type &, sc_core::sc_time &))
passthrough_target_socket_b< MODULE, BUSWIDTH, TYPES > socket_b
passthrough_target_socket_b< MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND > socket_b
passthrough_target_socket_tagged_optional(const char *name)
passthrough_target_socket_b(const char *n=default_name())
passthrough_target_socket()
int mod(int val, int mod)
unsigned int(MODULE::* TransportDbgPtr)(transaction_type &)
const sc_core::sc_object * get_socket() const
bool get_direct_mem_ptr(transaction_type &trans, tlm::tlm_dmi &dmi_data)
void register_nb_transport_fw(MODULE *mod, sync_enum_type(MODULE::*cb)(int id, transaction_type &, phase_type &, sc_core::sc_time &), int id)
void register_b_transport(MODULE *mod, void(MODULE::*cb)(transaction_type &, sc_core::sc_time &))
passthrough_target_socket_tagged_optional()
tlm::tlm_target_socket< BUSWIDTH, TYPES, 1, POL > base_type
void display_error(const char *msg) const
void set_get_dmi_user_id(int id)
void set_b_transport_ptr(MODULE *mod, BTransportPtr p)
void(MODULE::* BTransportPtr)(transaction_type &, sc_core::sc_time &)
void set_nb_transport_ptr(MODULE *mod, NBTransportPtr p)
BTransportPtr m_b_transport_ptr
void register_transport_dbg(MODULE *mod, unsigned int(MODULE::*cb)(transaction_type &))
void register_get_direct_mem_ptr(MODULE *mod, bool(MODULE::*cb)(int id, transaction_type &, tlm::tlm_dmi &), int id)
process(passthrough_socket_base *owner)
void set_transport_dbg_ptr(MODULE *mod, TransportDbgPtr p)
passthrough_target_socket_tagged_b< MODULE, BUSWIDTH, TYPES > socket_b
TYPES::tlm_phase_type phase_type
NBTransportPtr m_nb_transport_ptr
GetDirectMem_ptr m_get_direct_mem_ptr
static const char * default_name()
TYPES::tlm_phase_type phase_type
TYPES::tlm_payload_type transaction_type
passthrough_target_socket_tagged_b(const char *n=default_name())
bool(MODULE::* GetDirectMem_ptr)(transaction_type &, tlm::tlm_dmi &)
int m_nb_transport_user_id
NBTransportPtr m_nb_transport_ptr
sync_enum_type(MODULE::* NBTransportPtr)(transaction_type &, phase_type &, sc_core::sc_time &)
tlm::tlm_fw_transport_if< TYPES > fw_interface_type
void set_end_address(sc_dt::uint64 addr)
void set_b_transport_user_id(int id)
void set_b_transport_ptr(MODULE *mod, BTransportPtr p)
unsigned int transport_dbg(transaction_type &trans)
bool get_direct_mem_ptr(transaction_type &trans, tlm::tlm_dmi &dmi_data)
passthrough_target_socket_tagged_b< MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND > socket_b