27 tlm_utils::simple_target_socket<inlinesync, DEFAULT_TLM_BUSWIDTH> target_socket;
28 tlm_utils::simple_initiator_socket<inlinesync, DEFAULT_TLM_BUSWIDTH> initiator_socket;
30 inlinesync(
const sc_core::sc_module_name& name)
31 : sc_module(name), onSystemC(), target_socket(
"targetSocket"), initiator_socket(
"initiatorSocket")
33 target_socket.register_b_transport(
this, &inlinesync::b_transport);
34 initiator_socket.register_invalidate_direct_mem_ptr(
this, &inlinesync::invalidate_direct_mem_ptr);
37 void b_transport(tlm::tlm_generic_payload&
trans, sc_core::sc_time& delay)
39 run_on_sysc([
this, &
trans, &delay]() {
40 sc_core::sc_unsuspendable();
41 initiator_socket->b_transport(
trans, delay);
42 sc_core::sc_suspendable();
46 void get_direct_mem_ptr(tlm::tlm_generic_payload&
trans, tlm::tlm_dmi& dmi_data)
48 run_on_sysc([
this, &
trans, &dmi_data]() { initiator_socket->get_direct_mem_ptr(
trans, dmi_data); });
50 void transport_dgb(tlm::tlm_generic_payload&
trans)
52 run_on_sysc([
this, &
trans]() { initiator_socket->transport_dbg(
trans); });
bool run_on_sysc(std::function< void()> job_entry, bool wait=true)
Run a job on the SystemC kernel thread.
Definition runonsysc.h:181