41#ifndef __DEV_X86_INTDEV_HH__
42#define __DEV_X86_INTDEV_HH__
58template <
class Device>
73 return device->getIntAddrRange();
80 "%s received unexpected command %s from %s.\n",
83 return device->recvMessage(pkt);
99template <
class Device>
120 Device* dev,
Tick _latency) :
const std::string & toString() const
Return the string to a cmd given by idx.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
uint32_t payloadDelay
The extra pipelining delay from seeing the packet until the end of payload is transmitted by the comp...
uint32_t headerDelay
The extra delay from seeing the packet until the header is transmitted.
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...
void setRaw(T v)
Set the value in the data pointer to v without byte swapping.
SenderState * popSenderState()
Pop the top of the state stack and return a pointer to it.
MemCmd cmd
The command field of the packet.
void allocate()
Allocate memory for the packet.
Port & getPeer()
Return a reference to this port's peer.
const std::string name() const
Return port name (for DPRINTF).
The QueuedRequestPort combines two queues, a request queue and a snoop response queue,...
void schedTimingReq(PacketPtr pkt, Tick when)
Schedule the sending of a timing request.
Tick sendAtomic(PacketPtr pkt)
Send an atomic request packet, where the data is moved and the state is updated in zero time,...
@ UNCACHEABLE
The request is to an uncacheable address.
@ intRequestorId
This requestor id is used for message signaled interrupts.
Abstract superclass for simulation objects.
The simple timing port uses a queued port to implement recvFunctional and recvTimingReq through recvA...
bool recvTimingResp(PacketPtr pkt) override
Receive a timing response from the peer.
void sendMessage(PacketPtr pkt, bool timing, OnCompletionFunc func=defaultOnCompletion)
static void defaultOnCompletion(PacketPtr pkt)
std::function< void(PacketPtr)> OnCompletionFunc
SnoopRespPacketQueue snoopRespQueue
IntRequestPort(const std::string &_name, SimObject *_parent, Device *dev, Tick _latency)
AddrRangeList getAddrRanges() const
Get a list of the non-overlapping address ranges the owner is responsible for.
IntResponsePort(const std::string &_name, SimObject *_parent, Device *dev)
Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
PacketPtr buildIntPacket(Addr addr, T payload)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
T safe_cast(U &&ref_or_ptr)
std::shared_ptr< Request > RequestPtr
Tick curTick()
The universal simulation clock.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
A virtual base opaque structure used to hold state associated with the packet (e.g....
OnCompletion(OnCompletionFunc _func)
Declaration of SimpleTimingPort.