75 uint8_t *loc_data = (uint8_t*)data;
85 (this->*dmaFn)(phys, gen.size(),
event, loc_data, delay);
87 loc_data += gen.size();
106 if (!process->pTable->translate(vaddr, paddr)) {
107 fatal(
"failed translation: vaddr 0x%x\n", vaddr);
HSAPacketProcessor & hsaPacketProc()
#define fatal(...)
This implements a cprintf based fatal() function.
HSAPacketProcessor * hsaPP
void dmaWrite(Addr addr, int size, Event *event, uint8_t *data, uint32_t sid, uint32_t ssid, Tick delay=0)
virtual Process * getProcessPtr()=0
ThreadContext * getThreadContext(ContextID tid) const
void dmaVirt(DmaFnPtr, Addr host_addr, unsigned size, DmaCallback *cb, void *data, Tick delay=0)
Tick curTick()
The current simulated tick.
void dmaWriteVirt(Addr host_addr, unsigned size, DmaCallback *cb, void *data, Tick delay=0)
void(DmaDevice::* DmaFnPtr)(Addr, int, Event *, uint8_t *, Tick)
void dmaReadVirt(Addr host_addr, unsigned size, DmaCallback *cb, void *data, Tick delay=0)
uint64_t Tick
Tick count type.
void dmaRead(Addr addr, int size, Event *event, uint8_t *data, uint32_t sid, uint32_t ssid, Tick delay=0)
This class takes an arbitrary memory region (address/length pair) and generates a series of appropria...
void schedule(Event &event, Tick when)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool done() const
Are we done? That is, did the last call to next() advance past the end of the region?
Event * getChunkEvent()
Request a chunk event.
Declaration and inline definition of ChunkGenerator object.
void translateOrDie(Addr vaddr, Addr &paddr)
HSADevices will perform DMA operations on VAs, and because page faults are not currently supported fo...