20 #ifndef TLM_UTILS_SIMPLE_INITIATOR_SOCKET_H_INCLUDED_ 21 #define TLM_UTILS_SIMPLE_INITIATOR_SOCKET_H_INCLUDED_ 28 template<
typename MODULE,
unsigned int BUSWIDTH,
typename TYPES
54 sync_enum_type (MODULE::*cb)(transaction_type&,
58 m_process.set_transport_ptr(mod, cb);
64 m_process.set_invalidate_direct_mem_ptr(mod, cb);
82 , m_invalidate_direct_mem_ptr(0)
86 void set_transport_ptr(MODULE* mod, TransportPtr p)
88 if (m_transport_ptr) {
97 void set_invalidate_direct_mem_ptr(MODULE* mod, InvalidateDirectMemPtr p)
99 if (m_invalidate_direct_mem_ptr) {
105 m_invalidate_direct_mem_ptr = p;
108 sync_enum_type nb_transport_bw(transaction_type& trans, phase_type& phase,
sc_core::sc_time& t)
110 if (m_transport_ptr) {
113 return (m_mod->*m_transport_ptr)(trans, phase, t);
119 void invalidate_direct_mem_ptr(sc_dt::uint64 start_range,
120 sc_dt::uint64 end_range)
122 if (m_invalidate_direct_mem_ptr) {
125 (m_mod->*m_invalidate_direct_mem_ptr)(start_range, end_range);
131 TransportPtr m_transport_ptr;
132 InvalidateDirectMemPtr m_invalidate_direct_mem_ptr;
141 template<
typename MODULE,
unsigned int BUSWIDTH = 32
152 template<
typename MODULE,
unsigned int BUSWIDTH = 32
166 template<
typename MODULE,
unsigned int BUSWIDTH,
typename TYPES
192 sync_enum_type (MODULE::*cb)(
int,
198 m_process.set_transport_ptr(mod, cb);
199 m_process.set_transport_user_id(
id);
206 m_process.set_invalidate_direct_mem_ptr(mod, cb);
207 m_process.set_invalidate_dmi_user_id(
id);
220 typedef void (MODULE::*InvalidateDirectMemPtr)(int,
227 , m_invalidate_direct_mem_ptr(0)
228 , m_transport_user_id(0)
229 , m_invalidate_direct_mem_user_id(0)
233 void set_transport_user_id(
int id) { m_transport_user_id = id; }
234 void set_invalidate_dmi_user_id(
int id) { m_invalidate_direct_mem_user_id = id; }
236 void set_transport_ptr(MODULE* mod, TransportPtr p)
238 if (m_transport_ptr) {
247 void set_invalidate_direct_mem_ptr(MODULE* mod, InvalidateDirectMemPtr p)
249 if (m_invalidate_direct_mem_ptr) {
255 m_invalidate_direct_mem_ptr = p;
258 sync_enum_type nb_transport_bw(transaction_type& trans, phase_type& phase,
sc_core::sc_time& t)
260 if (m_transport_ptr) {
263 return (m_mod->*m_transport_ptr)(m_transport_user_id, trans, phase, t);
269 void invalidate_direct_mem_ptr(sc_dt::uint64 start_range,
270 sc_dt::uint64 end_range)
272 if (m_invalidate_direct_mem_ptr) {
275 (m_mod->*m_invalidate_direct_mem_ptr)(m_invalidate_direct_mem_user_id, start_range, end_range);
281 TransportPtr m_transport_ptr;
282 InvalidateDirectMemPtr m_invalidate_direct_mem_ptr;
283 int m_transport_user_id;
284 int m_invalidate_direct_mem_user_id;
293 template<
typename MODULE,
unsigned int BUSWIDTH = 32
304 template<
typename MODULE,
unsigned int BUSWIDTH = 32
316 #endif // TLM_UTILS_SIMPLE_INITIATOR_SOCKET_H_INCLUDED_ tlm::tlm_initiator_socket< BUSWIDTH, TYPES, 1, POL > base_type
void display_warning(const char *msg) const
simple_initiator_socket_tagged_optional()
simple_initiator_socket_tagged()
static const char * default_name()
tlm::tlm_sync_enum sync_enum_type
TYPES::tlm_phase_type phase_type
tlm::tlm_initiator_socket< BUSWIDTH, TYPES, 1, POL > base_type
TYPES::tlm_phase_type phase_type
void register_invalidate_direct_mem_ptr(MODULE *mod, void(MODULE::*cb)(sc_dt::uint64, sc_dt::uint64))
simple_initiator_socket_tagged(const char *name)
tlm::tlm_bw_transport_if< TYPES > bw_interface_type
static const char * default_name()
simple_initiator_socket(const char *name)
SC_VIRTUAL_ void bind(IF &interface_)
void register_nb_transport_bw(MODULE *mod, sync_enum_type(MODULE::*cb)(transaction_type &, phase_type &, sc_core::sc_time &))
simple_initiator_socket_tagged_optional(const char *name)
simple_initiator_socket_tagged_b(const char *n=default_name())
simple_initiator_socket()
simple_initiator_socket_optional()
tlm::tlm_fw_transport_if< TYPES > fw_interface_type
void register_nb_transport_bw(MODULE *mod, sync_enum_type(MODULE::*cb)(int, transaction_type &, phase_type &, sc_core::sc_time &), int id)
simple_initiator_socket_b(const char *n=default_name())
tlm::tlm_fw_transport_if< TYPES > fw_interface_type
void display_error(const char *msg) const
tlm::tlm_bw_transport_if< TYPES > bw_interface_type
tlm::tlm_sync_enum sync_enum_type
const char * name() const
TYPES::tlm_payload_type transaction_type
SC_API const char * sc_gen_unique_name(const char *, bool preserve_first)
simple_initiator_socket_optional(const char *name)
void register_invalidate_direct_mem_ptr(MODULE *mod, void(MODULE::*cb)(int, sc_dt::uint64, sc_dt::uint64), int id)
TYPES::tlm_payload_type transaction_type