39 const OutgoingRequestBridgeParams ¶ms) :
41 outgoingPort(
std::string(
name()), this),
42 sstResponder(nullptr),
43 physicalAddressRanges(params.physical_address_ranges.begin(),
44 params.physical_address_ranges.end())
111 uint8_t* ptr = pkt->
getPtr<uint8_t>();
112 uint64_t size = pkt->
getSize();
121 assert(
false &&
"OutgoingRequestPort::recvAtomic not implemented");
129 owner->handleRecvFunctional(pkt);
136 owner->sstResponder->handleRecvTimingReq(pkt);
144 owner->sstResponder->handleRecvRespRetry();
151 return owner->physicalAddressRanges;
OutgoingRequestBridge * owner
void recvFunctional(PacketPtr pkt)
Receive a functional request packet from the peer.
void recvRespRetry()
Called by the peer if sendTimingResp was called on this protocol (causing recvTimingResp to be called...
bool recvTimingReq(PacketPtr pkt)
Receive a timing request from the peer.
OutgoingRequestPort(const std::string &name_, OutgoingRequestBridge *owner_)
AddrRangeList getAddrRanges() const
Get a list of the non-overlapping address ranges the owner is responsible for.
Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
void sendTimingSnoopReq(PacketPtr pkt)
Port & getPort(const std::string &if_name, PortID idx)
Get a port with a given name and index.
void init()
init() is called after all C++ SimObjects have been created and all ports are connected.
SSTResponderInterface * sstResponder
bool sendTimingResp(PacketPtr pkt)
void handleRecvFunctional(PacketPtr pkt)
OutgoingRequestBridge(const OutgoingRequestBridgeParams ¶ms)
OutgoingRequestPort outgoingPort
std::vector< std::pair< Addr, std::vector< uint8_t > > > initData
std::vector< std::pair< Addr, std::vector< uint8_t > > > getInitData() const
AddrRangeList getAddrRanges() const
void setResponder(SSTResponderInterface *responder)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
T * getPtr()
get a pointer to the data ptr.
Ports are used to interface objects to each other.
bool isConnected() const
Is this port currently connected to a peer?
A ResponsePort is a specialization of a port.
bool sendTimingResp(PacketPtr pkt)
Attempt to send a timing response to the request port by calling its corresponding receive function.
void sendTimingSnoopReq(PacketPtr pkt)
Attempt to send a timing snoop request packet to the request port by calling its corresponding receiv...
void sendRangeChange() const
Called by the owner to send a range change.
Abstract superclass for simulation objects.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
uint64_t Tick
Tick count type.
Overload hash function for BasicBlockRange type.
const std::string & name()