37 :
SimObject(
p), in_port_(
"in_port", *this), out_port_(
"out_port", *this)
50 return device_.out_port_.getAddrRanges();
57 panic(
"ThreadBridge only supports atomic/functional access.");
62 panic(
"ThreadBridge only supports atomic/functional access.");
70 return device_.out_port_.sendAtomic(pkt);
78 device_.out_port_.sendFunctional(pkt);
90 device_.in_port_.sendRangeChange();
97 panic(
"ThreadBridge only supports atomic/functional access.");
102 panic(
"ThreadBridge only supports atomic/functional access.");
108 if (if_name ==
"in_port")
110 if (if_name ==
"out_port")
virtual std::string name() const
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Ports are used to interface objects to each other.
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
A ResponsePort is a specialization of a port.
Abstract superclass for simulation objects.
bool recvTimingReq(PacketPtr pkt) override
Receive a timing request from the peer.
IncomingPort(const std::string &name, ThreadBridge &device)
Tick recvAtomic(PacketPtr pkt) override
Receive an atomic request packet from the peer.
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 pkt) override
Receive a functional request packet from the peer.
OutgoingPort(const std::string &name, ThreadBridge &device)
bool recvTimingResp(PacketPtr pkt) override
Receive a timing response from the peer.
void recvRangeChange() override
Called to receive an address range change from the peer response port.
void recvReqRetry() override
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
ThreadBridge(const ThreadBridgeParams &p)
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
#define panic(...)
This implements a cprintf based panic() function.
virtual Port & getPort(const std::string &if_name, PortID idx=InvalidPortID)
Get a port with a given name and index.
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.
const std::string & name()