Go to the documentation of this file.
58 #ifndef __SYSTEMC_TLM_BRIDGE_TLM_TO_GEM5_HH__
59 #define __SYSTEMC_TLM_BRIDGE_TLM_TO_GEM5_HH__
62 #include <unordered_set>
66 #include "params/TlmToGem5BridgeBase.hh"
92 template <
unsigned int BITWIDTH>
104 return bridge.recvTimingResp(pkt);
167 typedef gem5::TlmToGem5BridgeBaseParams
Params;
183 #endif // __SYSTEMC_TLM_BRIDGE_TLM_TO_GEM5_HH__
TlmToGem5Bridge< BITWIDTH > & bridge
gem5::PacketPtr pendingPacket
const gem5::RequestorID _id
tlm::tlm_generic_payload * pendingRequest
tlm_utils::peq_with_cb_and_phase< TlmToGem5Bridge< BITWIDTH > > peq
RequestPort(const std::string &name, SimObject *_owner, PortID id=InvalidPortID)
Request port.
void destroyPacket(gem5::PacketPtr pkt)
bool recvTimingResp(gem5::PacketPtr pkt)
BridgeRequestPort(const std::string &name_, TlmToGem5Bridge< BITWIDTH > &bridge_)
std::unordered_set< gem5::MemBackdoorPtr > requestedBackdoors
TlmToGem5Bridge(const Params &p, const sc_core::sc_module_name &mn)
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
tlm::tlm_sync_enum nb_transport_fw(tlm::tlm_generic_payload &trans, tlm::tlm_phase &phase, sc_core::sc_time &t)
bool recvTimingResp(gem5::PacketPtr pkt) override
Receive a timing response from the peer.
void before_end_of_elaboration() override
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
sc_gem5::TlmTargetWrapper< BITWIDTH > wrapper
std::pair< PacketPtr, bool > payload2packet(RequestorID _id, tlm::tlm_generic_payload &trans)
Convert a TLM payload to gem5 packet by copying all the relevant information to new packet.
void sendEndReq(tlm::tlm_generic_payload &trans)
tlm_utils::simple_target_socket< TlmToGem5Bridge< BITWIDTH >, BITWIDTH > & getSocket()
void sendBeginResp(tlm::tlm_generic_payload &trans, sc_core::sc_time &delay)
An event queue that can contain any number of pending notifications.
void addPayloadToPacketConversionStep(PayloadToPacketConversionStep step)
Notify the Tlm2Gem5 bridge that we need an extra step to properly convert a tlm payload to gem5 packe...
gem5::TlmToGem5BridgeBaseParams Params
void handleBeginReq(tlm::tlm_generic_payload &trans)
void b_transport(tlm::tlm_generic_payload &trans, sc_core::sc_time &t)
void recvReqRetry() override
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
std::function< void(gem5::PacketPtr pkt, tlm::tlm_generic_payload &trans)> PayloadToPacketConversionStep
gem5::Port & gem5_getPort(const std::string &if_name, int idx=-1) override
Ports are used to interface objects to each other.
void handleEndResp(tlm::tlm_generic_payload &trans)
unsigned int transport_dbg(tlm::tlm_generic_payload &trans)
tlm_utils::simple_target_socket< TlmToGem5Bridge< BITWIDTH >, BITWIDTH > socket
void recvRangeChange() override
Called to receive an address range change from the peer response port.
bool get_direct_mem_ptr(tlm::tlm_generic_payload &trans, tlm::tlm_dmi &dmi_data)
void peq_cb(tlm::tlm_generic_payload &trans, const tlm::tlm_phase &phase)
void invalidateDmi(const gem5::MemBackdoor &backdoor)
Generated on Sun Jul 30 2023 01:57:03 for gem5 by doxygen 1.8.17