Go to the documentation of this file.
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) :
152 #endif //__DEV_X86_INTDEV_HH__
@ intRequestorId
This requestor id is used for message signaled interrupts.
IntResponsePort(const std::string &_name, SimObject *_parent, Device *dev)
SnoopRespPacketQueue snoopRespQueue
uint32_t payloadDelay
The extra pipelining delay from seeing the packet until the end of payload is transmitted by the comp...
void setRaw(T v)
Set the value in the data pointer to v without byte swapping.
std::function< void(PacketPtr)> OnCompletionFunc
uint64_t Tick
Tick count type.
std::shared_ptr< Request > RequestPtr
void sendMessage(PacketPtr pkt, bool timing, OnCompletionFunc func=defaultOnCompletion)
uint32_t headerDelay
The extra delay from seeing the packet until the header is transmitted.
void schedTimingReq(PacketPtr pkt, Tick when)
Schedule the sending of a timing request.
IntRequestPort(const std::string &_name, SimObject *_parent, Device *dev, Tick _latency)
A virtual base opaque structure used to hold state associated with the packet (e.g....
const std::string & toString() const
Return the string to a cmd given by idx.
The QueuedRequestPort combines two queues, a request queue and a snoop response queue,...
Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
@ UNCACHEABLE
The request is to an uncacheable address.
AddrRangeList getAddrRanges() const
Get a list of the non-overlapping address ranges the owner is responsible for.
This is exposed globally, independent of the ISA.
ProbePointArg< PacketInfo > Packet
Packet probe point.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
const std::string name() const
Return port name (for DPRINTF).
MemCmd cmd
The command field of the packet.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
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...
The simple timing port uses a queued port to implement recvFunctional and recvTimingReq through recvA...
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
SenderState * popSenderState()
Pop the top of the state stack and return a pointer to it.
static void defaultOnCompletion(PacketPtr pkt)
Port & getPeer()
Return a reference to this port's peer.
Tick sendAtomic(PacketPtr pkt)
Send an atomic request packet, where the data is moved and the state is updated in zero time,...
bool recvTimingResp(PacketPtr pkt) override
Receive a timing response from the peer.
void allocate()
Allocate memory for the packet.
OnCompletion(OnCompletionFunc _func)
PacketPtr buildIntPacket(Addr addr, T payload)
Tick curTick()
The current simulated tick.
Abstract superclass for simulation objects.
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17