diff --git a/src/systemc/tlm_port_wrapper.hh b/src/systemc/tlm_port_wrapper.hh index 59f8d9fe00..1e46c5d827 100644 --- a/src/systemc/tlm_port_wrapper.hh +++ b/src/systemc/tlm_port_wrapper.hh @@ -37,31 +37,27 @@ namespace sc_gem5 { -template -class TlmInitiatorWrapper; - -template -class TlmTargetWrapper; - -template -class TlmInitiatorWrapper : public ::Port +class TlmInitiatorBaseWrapper; + +template +class TlmTargetBaseWrapper; + +template +class TlmInitiatorBaseWrapper : public ::Port { public: - typedef tlm::tlm_base_initiator_socket, - tlm::tlm_bw_transport_if, N, POL> + typedef tlm::tlm_base_initiator_socket InitiatorSocket; typedef typename InitiatorSocket::base_target_socket_type TargetSocket; - typedef TlmTargetWrapper TargetWrapper; + typedef TlmTargetBaseWrapper TargetWrapper; InitiatorSocket &initiator() { return _initiator; } - TlmInitiatorWrapper( + TlmInitiatorBaseWrapper( InitiatorSocket &i, const std::string &_name, PortID _id) : Port(_name, _id), _initiator(i) {} @@ -87,19 +83,18 @@ class TlmInitiatorWrapper : public ::Port InitiatorSocket &_initiator; }; -template -class TlmTargetWrapper : public ::Port +class TlmTargetBaseWrapper : public ::Port { public: - typedef tlm::tlm_base_target_socket, - tlm::tlm_bw_transport_if, N, POL> + typedef tlm::tlm_base_target_socket TargetSocket; TargetSocket &target() { return _target; } - TlmTargetWrapper(TargetSocket &t, const std::string &_name, PortID _id) : + TlmTargetBaseWrapper(TargetSocket &t, const std::string &_name, + PortID _id) : Port(_name, _id), _target(t) {} @@ -121,6 +116,20 @@ class TlmTargetWrapper : public ::Port TargetSocket &_target; }; +template +using TlmInitiatorWrapper = + TlmInitiatorBaseWrapper, + tlm::tlm_bw_transport_if, N, POL>; + +template +using TlmTargetWrapper = + TlmTargetBaseWrapper, + tlm::tlm_bw_transport_if, N, POL>; + } // namespace sc_gem5 #endif //__SYSTEMC_TLM_PORT_WRAPPER_HH__