40 #ifndef __DEV_ARM_SMMU_V3_PROC_HH__ 41 #define __DEV_ARM_SMMU_V3_PROC_HH__ 82 count(_max), max(_max)
87 std::queue<SMMUProcess *>
queue;
112 virtual void main(Yield &yield) = 0;
114 void doRead(Yield &yield,
Addr addr,
void *ptr,
size_t size);
115 void doWrite(Yield &yield,
Addr addr,
const void *ptr,
size_t size);
116 void doDelay(Yield &yield,
Cycles cycles);
117 void doSleep(Yield &yield);
122 void doWaitForSignal(Yield &yield,
SMMUSignal &sig);
125 void scheduleWakeup(
Tick when);
133 const std::string
name()
const {
return myName; };
std::queue< SMMUProcess * > queue
Cycles is a wrapper class for representing cycle counts, i.e.
const std::string & name()
std::list< SMMUProcess * > waiting
Coroutine::CallerType Yield
SMMUv3SlaveInterface * ifc
int main(int argc, char **argv)
CallerType: A reference to an object of this class will be passed to the coroutine task...
uint64_t Tick
Tick count type.
SMMUSemaphore(unsigned _max)
This template defines a Coroutine wrapper type with a Boost-like interface.
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
A virtual base opaque structure used to hold state associated with the packet (e.g., an MSHR), specific to a SimObject that sees the packet.
m5::Coroutine< PacketPtr, SMMUAction > Coroutine
Declaration of the Packet class.
const std::string name() const