Go to the documentation of this file.
38 #ifndef __DEV_ARM_SMMU_V3_PROC_HH__
39 #define __DEV_ARM_SMMU_V3_PROC_HH__
52 class SMMUv3DeviceInterface;
89 std::queue<SMMUProcess *>
queue;
Coroutine::CallerType Yield
void doSemaphoreDown(Yield &yield, SMMUSemaphore &sem)
SMMUSemaphore(unsigned _max)
void doSemaphoreUp(SMMUSemaphore &sem)
Cycles is a wrapper class for representing cycle counts, i.e.
const std::string name() const
void doBroadcastSignal(SMMUSignal &sig)
virtual void main(Yield &yield)=0
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
uint64_t Tick
Tick count type.
gem5::Coroutine< PacketPtr, SMMUAction > Coroutine
void doSleep(Yield &yield)
A virtual base opaque structure used to hold state associated with the packet (e.g....
SMMUProcess(const std::string &name, SMMUv3 &_smmu)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
This template defines a Coroutine wrapper type with a Boost-like interface.
void scheduleWakeup(Tick when)
std::queue< SMMUProcess * > queue
void doDelay(Yield &yield, Cycles cycles)
void doRead(Yield &yield, Addr addr, void *ptr, size_t size)
SMMUAction run(PacketPtr pkt)
void doWrite(Yield &yield, Addr addr, const void *ptr, size_t size)
SMMUv3DeviceInterface * ifc
CallerType: A reference to an object of this class will be passed to the coroutine task.
void doWaitForSignal(Yield &yield, SMMUSignal &sig)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
std::list< SMMUProcess * > waiting
Generated on Tue Sep 21 2021 12:25:15 for gem5 by doxygen 1.8.17