38#ifndef __DEV_ARM_SMMU_V3_PROC_HH__
39#define __DEV_ARM_SMMU_V3_PROC_HH__
52class SMMUv3DeviceInterface;
89 std::queue<SMMUProcess *>
queue;
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
CallerType: A reference to an object of this class will be passed to the coroutine task.
This template defines a Coroutine wrapper type with a Boost-like interface.
Cycles is a wrapper class for representing cycle counts, i.e.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
gem5::Coroutine< PacketPtr, SMMUAction > Coroutine
SMMUAction run(PacketPtr pkt)
virtual void main(Yield &yield)=0
void doSleep(Yield &yield)
const std::string name() const
void doWrite(Yield &yield, Addr addr, const void *ptr, size_t size)
Coroutine::CallerType Yield
void doDelay(Yield &yield, Cycles cycles)
void doSemaphoreUp(SMMUSemaphore &sem)
SMMUProcess(const std::string &name, SMMUv3 &_smmu)
void scheduleWakeup(Tick when)
void doBroadcastSignal(SMMUSignal &sig)
void doSemaphoreDown(Yield &yield, SMMUSemaphore &sem)
void doWaitForSignal(Yield &yield, SMMUSignal &sig)
void doRead(Yield &yield, Addr addr, void *ptr, size_t size)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
Declaration of the Packet class.
A virtual base opaque structure used to hold state associated with the packet (e.g....
SMMUv3DeviceInterface * ifc
std::queue< SMMUProcess * > queue
SMMUSemaphore(unsigned _max)
std::list< SMMUProcess * > waiting