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>
130 auto id =
memCtrl->system()->lookupRequestorId(requestor);
133 "Unable to find requestor %s\n", requestor);
136 "Requestor %s [id %d] associated with QoS data %d\n",
137 requestor,
id, value);
@ invldRequestorId
Invalid requestor id for assertion checking only.
The qos::MemCtrl is a base class for Memory objects which support QoS - it provides access to a set o...
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...
SimObject(const Params &p)
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 ...