diff -r b9fc391b2477 -r 9733d3adf993 util/tlm/sc_slave_port.hh --- a/util/tlm/sc_slave_port.hh Fri Oct 28 18:40:50 2016 +0200 +++ b/util/tlm/sc_slave_port.hh Fri Oct 28 18:54:57 2016 +0200 @@ -58,12 +58,10 @@ } while (0) -class SCSlavePort : public tlm::tlm_initiator_socket<>, - public tlm::tlm_bw_transport_if<>, - public ExternalSlave::Port +class SCSlavePort : public ExternalSlave::Port { public: - SCSlavePort &iSocket; + tlm_utils::simple_initiator_socket iSocket; /** One instance of pe and the related callback needed */ //payloadEvent pe; @@ -102,9 +100,6 @@ tlm::tlm_phase& phase, sc_core::sc_time& t); - void invalidate_direct_mem_ptr(sc_dt::uint64 start_range, - sc_dt::uint64 end_range); - public: SCSlavePort(const std::string &name_, const std::string &systemc_name, diff -r b9fc391b2477 -r 9733d3adf993 util/tlm/sc_slave_port.cc --- a/util/tlm/sc_slave_port.cc Fri Oct 28 18:40:50 2016 +0200 +++ b/util/tlm/sc_slave_port.cc Fri Oct 28 18:54:57 2016 +0200 @@ -262,7 +262,7 @@ /* Did another request arrive while blocked, schedule a retry */ if (needToSendRequestRetry) { needToSendRequestRetry = false; - iSocket.sendRetryReq(); + sendRetryReq(); } } else if (phase == tlm::BEGIN_RESP) @@ -276,7 +276,7 @@ bool need_retry; if (packet->needsResponse()) { packet->makeResponse(); - need_retry = !iSocket.sendTimingResp(packet); + need_retry = !sendTimingResp(packet); } else { need_retry = false; } @@ -311,7 +311,7 @@ blockingResponse = NULL; PacketPtr packet = gem5Extension::getExtension(trans).getPacket(); - bool need_retry = !iSocket.sendTimingResp(packet); + bool need_retry = !sendTimingResp(packet); sc_assert(!need_retry); @@ -333,24 +333,16 @@ return tlm::TLM_ACCEPTED; } -void -SCSlavePort::invalidate_direct_mem_ptr(sc_dt::uint64 start_range, - sc_dt::uint64 end_range) -{ - SC_REPORT_FATAL("transactor", "unimpl. func: invalidate_direct_mem_ptr"); -} - SCSlavePort::SCSlavePort(const std::string &name_, const std::string &systemc_name, ExternalSlave &owner_) : - tlm::tlm_initiator_socket<>(systemc_name.c_str()), ExternalSlave::Port(name_, owner_), - iSocket(*this), + iSocket(systemc_name.c_str()), blockingRequest(NULL), needToSendRequestRetry(false), blockingResponse(NULL) { - m_export.bind(*this); + iSocket.register_nb_transport_bw(this, &SCSlavePort::nb_transport_bw); } class SlavePortHandler : public ExternalSlave::Handler