Go to the documentation of this file.
90 a.pkt->dataStatic(ptr);
123 a.pkt->dataStatic(ptr);
153 while (sem.
count == 0) {
154 sem.
queue.push(
this);
166 if (!sem.
queue.empty()) {
Tick curTick()
The universal simulation clock.
std::enable_if_t<!std::is_same< T, void >::value, T > get()
get() is the way we can extrapolate arguments from the coroutine caller.
const unsigned requestPortWidth
void doSemaphoreDown(Yield &yield, SMMUSemaphore &sem)
const RequestorID requestorId
void schedule(Event &event, Tick when)
void doSemaphoreUp(SMMUSemaphore &sem)
Cycles is a wrapper class for representing cycle counts, i.e.
void doBroadcastSignal(SMMUSignal &sig)
virtual void main(Yield &yield)=0
SMMUSemaphore requestPortSem
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
ProbePointArg< PacketInfo > Packet
Packet probe point.
uint64_t Tick
Tick count type.
std::shared_ptr< Request > RequestPtr
gem5::Coroutine< PacketPtr, SMMUAction > Coroutine
void doSleep(Yield &yield)
bool isTimingMode() const
Is the system in timing mode?
SMMUProcess(const std::string &name, SMMUv3 &_smmu)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void scheduleWakeup(Tick when)
const std::string & name()
std::queue< SMMUProcess * > queue
Tick clockEdge(Cycles cycles=Cycles(0)) const
Determine the tick when a cycle begins, by default the current one, but the argument also enables the...
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)
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
SMMUAction runProcess(SMMUProcess *proc, PacketPtr pkt)
Generated on Tue Sep 21 2021 12:25:15 for gem5 by doxygen 1.8.17