28#ifndef __MEM_SYS_BRIDGE_HH__
29#define __MEM_SYS_BRIDGE_HH__
33#include "debug/SysBridge.hh"
35#include "params/SysBridge.hh"
104 pkt->
req->requestorId(
id);
112 pkt->
req->requestorId(orig);
328 targetPort->sendMemBackdoorReq(req, backdoor);
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
RequestorID requestorId() const
void pushSenderState(SenderState *sender_state)
Push a new sender state to the packet and make the current sender state the predecessor of the new on...
SenderState * popSenderState()
Pop the top of the state stack and return a pointer to it.
RequestPtr req
A pointer to the original request.
Ports are used to interface objects to each other.
RequestPort(const std::string &name, SimObject *_owner, PortID id=InvalidPortID)
Request port.
ResponsePort(const std::string &name, SimObject *_owner, PortID id=InvalidPortID)
Response port.
RequestorID replaceReqID(PacketPtr pkt)
BridgingPort(RequestorID _id)
static void restoreReqID(PacketPtr pkt, RequestorID orig)
SysBridgeSenderState(const RequestorID id)
bool tryTiming(PacketPtr pkt) override
Availability request from the peer.
void recvMemBackdoorReq(const MemBackdoorReq &req, MemBackdoorPtr &backdoor) override
Receive a request for a back door to a range of memory.
void recvRespRetry() override
Called by the peer if sendTimingResp was called on this protocol (causing recvTimingResp to be called...
bool recvTimingReq(PacketPtr pkt) override
Receive a timing request from the peer.
SysBridgeSourcePort(const std::string &_name, SysBridgeTargetPort *target_port, RequestorID _id)
AddrRangeList getAddrRanges() const override
Get a list of the non-overlapping address ranges the owner is responsible for.
Tick recvAtomicBackdoor(PacketPtr pkt, MemBackdoorPtr &backdoor) override
Default implementations.
void recvFunctional(PacketPtr pkt) override
Receive a functional request packet from the peer.
bool recvTimingSnoopResp(PacketPtr pkt) override
Receive a timing snoop response from the peer.
SysBridgeTargetPort * targetPort
Tick recvAtomic(PacketPtr pkt) override
Receive an atomic request packet from the peer.
Tick recvAtomicSnoop(PacketPtr pkt) override
Default implementations.
void recvReqRetry() override
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
SysBridgeSourcePort * sourcePort
void recvRetrySnoopResp() override
Called by the peer if sendTimingSnoopResp was called on this protocol (causing recvTimingSnoopResp to...
void recvTimingSnoopReq(PacketPtr pkt) override
Receive a timing snoop request from the peer.
bool recvTimingResp(PacketPtr pkt) override
Receive a timing response from the peer.
SysBridgeTargetPort(const std::string &_name, SysBridgeSourcePort *source_port, RequestorID _id)
void recvFunctionalSnoop(PacketPtr pkt) override
Receive a functional snoop request packet from the peer.
void recvRangeChange() override
Called to receive an address range change from the peer response port.
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
SysBridgeTargetPort targetPort
SysBridge(const SysBridgeParams &p)
SysBridgeSourcePort sourcePort
std::list< AddrRange > AddrRangeList
Convenience typedef for a collection of address ranges.
SimObject(const Params &p)
Copyright (c) 2024 Arm Limited All rights reserved.
const PortID InvalidPortID
MemBackdoor * MemBackdoorPtr
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
uint64_t Tick
Tick count type.
A virtual base opaque structure used to hold state associated with the packet (e.g....