38#ifndef __MEM_QOS_POLICY_HH__
39#define __MEM_QOS_POLICY_HH__
47#include "debug/QOS.hh"
55struct QoSPolicyParams;
80 virtual void init()
override {};
99 template <
typename Requestor,
typename T>
110 const uint64_t
data) = 0;
126template <
typename Requestor,
typename T>
133 "Unable to find requestor %s\n", requestor);
136 "Requestor %s [id %d] associated with QoS data %d\n",
137 requestor,
id, value);
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
@ invldRequestorId
Invalid requestor id for assertion checking only.
Abstract superclass for simulation objects.
RequestorID lookupRequestorId(const SimObject *obj) const
Looks up the RequestorID for a given SimObject returns an invalid RequestorID (invldRequestorId) if n...
The qos::MemCtrl is a base class for Memory objects which support QoS - it provides access to a set o...
System * system() const
read the system pointer
virtual uint8_t schedule(const RequestorID requestor_id, const uint64_t data)=0
Schedules data - must be defined by derived class.
void setMemCtrl(MemCtrl *mem)
Setting a pointer to the Memory Controller implementing the policy.
virtual void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
MemCtrl * memCtrl
Pointer to parent memory controller implementing the policy.
virtual void regStats() override
Callback to set stat parameters.
std::pair< RequestorID, T > pair(Requestor requestor, T value)
Builds a RequestorID/value pair given a requestor input.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
Copyright (c) 2024 Arm Limited All rights reserved.
Declaration of the Packet class.
Declaration of a request, the overall memory request consisting of the parts of the request that are ...