40 #include "debug/HSADriver.hh" 43 #include "params/HSADriver.hh" 60 auto device_fd_entry = std::make_shared<DeviceFDEntry>(
this,
filename);
61 int tgt_fd = process->
fds->allocFD(device_fd_entry);
71 int tgt_flags,
int tgt_fd,
int offset)
74 "offset: 0x%x)\n", start, length, offset);
82 start = mem_state->getMmapEnd() -
length;
83 mem_state->setMmapEnd(start);
HSAPacketProcessor & hsaPacketProc()
This file defines buffer classes used to handle pointer arguments in emulated syscalls.
virtual Process * getProcessPtr()=0
int open(ThreadContext *tc, int mode, int flags)
Create an FD entry for the KFD inside of the owning process.
std::shared_ptr< MemState > memState
ThreadContext is the external interface to all thread state for anything outside of the CPU...
HSADevice * device
HSA agent (device) that is controled by this driver.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
HSADriver(HSADriverParams *p)
const std::string & filename
filename for opening this driver (under /dev)
Addr mmap(ThreadContext *tc, Addr start, uint64_t length, int prot, int tgtFlags, int tgtFd, int offset)
Currently, mmap() will simply setup a mapping for the associated device's packet processor's doorbell...
EmulatedDriver is an abstract base class for fake SE-mode device drivers.
std::shared_ptr< FDArray > fds
An HSADriver is an emulated driver that controls an HSA agent, or more simply put, an HSA device.