29#ifndef __MEM_PORT_TERMINATOR_HH__
30#define __MEM_PORT_TERMINATOR_HH__
48#include "params/PortTerminator.hh"
75 panic(
"Received an unexpected response. RequestPorts on a "
76 "PortTerminator never issue any requests. Therefore, they should "
77 "never receive a response.\n");
106 panic(
"PortTerminator recvAtomic should never be called");
111 panic(
"PortTerminator recvTimingReq should never be called");
116 panic(
"PortTerminator recvRespRetry should never be called");
121 panic(
"PortTerminator recvFunctional should never be called");
126 panic(
"PortTerminator getAddrRanges should never be called");
ReqPort(const std::string &name)
bool recvTimingResp(PacketPtr pkt) override
Receive a timing response from the peer.
void recvReqRetry() override
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
void recvRangeChange() override
Called to receive an address range change from the peer response port.
void recvRespRetry() override
Called by the peer if sendTimingResp was called on this protocol (causing recvTimingResp to be called...
AddrRangeList getAddrRanges() const override
Get a list of the non-overlapping address ranges the owner is responsible for.
void recvFunctional(PacketPtr) override
Receive a functional request packet from the peer.
bool recvTimingReq(PacketPtr) override
Receive a timing request from the peer.
RespPort(const std::string &name)
Tick recvAtomic(PacketPtr) override
Receive an atomic request packet from the peer.
PortTerminator(const PortTerminatorParams ¶ms)
std::vector< ReqPort > reqPorts
std::vector< RespPort > respPorts
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
Ports are used to interface objects to each other.
const std::string name() const
Return port name (for DPRINTF).
RequestPort(const std::string &name, SimObject *_owner, PortID id=InvalidPortID)
Request port.
ResponsePort(const std::string &name, SimObject *_owner, PortID id=InvalidPortID)
Response port.
std::list< AddrRange > AddrRangeList
Convenience typedef for a collection of address ranges.
#define panic(...)
This implements a cprintf based panic() function.
const Params & params() const
SimObject(const Params &p)
Copyright (c) 2024 Arm Limited All rights reserved.
const PortID InvalidPortID
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
uint64_t Tick
Tick count type.