41 #ifndef __DEV_X86_INTDEV_HH__ 42 #define __DEV_X86_INTDEV_HH__ 55 template <
class Device>
70 return device->getIntAddrRange();
77 "%s received unexpected command %s from %s.\n",
80 return device->recvMessage(pkt);
96 template <
class Device>
117 Device* dev,
Tick _latency) :
119 reqQueue(*_parent, *this), snoopRespQueue(*_parent, *this),
120 device(dev), latency(_latency)
136 OnCompletionFunc func=defaultOnCompletion)
140 schedTimingReq(pkt,
curTick() + latency);
152 #endif //__DEV_X86_INTDEV_HH__ SnoopRespPacketQueue snoopRespQueue
IntMasterPort(const std::string &_name, SimObject *_parent, Device *dev, Tick _latency)
Port & getPeer()
Return a reference to this port's peer.
const std::string & toString() const
Return the string to a cmd given by idx.
std::shared_ptr< Request > RequestPtr
The QueuedMasterPort combines two queues, a request queue and a snoop response queue, that both share the same port.
PacketPtr buildIntPacket(Addr addr, T payload)
void setRaw(T v)
Set the value in the data pointer to v without byte swapping.
The request is to an uncacheable address.
IntSlavePort(const std::string &_name, SimObject *_parent, Device *dev)
The simple timing port uses a queued port to implement recvFunctional and recvTimingReq through recvA...
Declaration of SimpleTimingPort.
Tick curTick()
The current simulated tick.
This master id is used for message signaled interrupts.
uint32_t headerDelay
The extra delay from seeing the packet until the header is transmitted.
uint64_t Tick
Tick count type.
void sendMessage(PacketPtr pkt, bool timing, OnCompletionFunc func=defaultOnCompletion)
AddrRangeList getAddrRanges() const
Get a list of the non-overlapping address ranges the owner is responsible for.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint32_t payloadDelay
The extra pipelining delay from seeing the packet until the end of payload is transmitted by the comp...
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
A virtual base opaque structure used to hold state associated with the packet (e.g., an MSHR), specific to a SimObject that sees the packet.
std::function< void(PacketPtr)> OnCompletionFunc
This is exposed globally, independent of the ISA.
MemCmd cmd
The command field of the packet.
static void defaultOnCompletion(PacketPtr pkt)
const std::string name() const
Return port name (for DPRINTF).
Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
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.
OnCompletion(OnCompletionFunc _func)
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
bool recvTimingResp(PacketPtr pkt) override
Receive a timing response from the peer.
Abstract superclass for simulation objects.
void allocate()
Allocate memory for the packet.
ProbePointArg< PacketInfo > Packet
Packet probe point.