Go to the documentation of this file.
48 #ifndef __DEV_HSA_HSA_DRIVER_HH__
49 #define __DEV_HSA_HSA_DRIVER_HH__
51 #include <unordered_map>
57 struct HSADriverParams;
68 int prot,
int tgt_flags,
int tgt_fd, off_t
offset);
74 :
driver(hsa_driver),
tc(thrd_cntxt) {}
114 std::unordered_map<uint32_t, ETEntry>
ETable;
133 "Thread should not be suspended\n");
147 std::unordered_map<ThreadContext *, EventList>
TCEvents;
158 #endif // __DEV_HSA_HSA_DRIVER_HH__
bool scheduled() const
Determine if the current event is scheduled.
std::set< uint32_t > signalEvents
uint64_t Tick
Tick count type.
void scheduleWakeup(Tick wakeup_delay)
void deschedule(Event &event)
HSADriver(const HSADriverParams &p)
std::unordered_map< ThreadContext *, EventList > TCEvents
EmulatedDriver is an abstract base class for fake SE-mode device drivers.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
const char * description() const override
Return a C string describing the event.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
@ Suspended
Temporarily inactive.
This object is a proxy for a port or other object which implements the functional response protocol,...
EventList(HSADriver *hsa_driver, ThreadContext *thrd_cntxt)
class EventTableEntry ETEntry
virtual void signalWakeupEvent(uint32_t event_id)
DriverWakeupEvent(HSADriver *hsa_driver, ThreadContext *thrd_cntxt)
std::unordered_map< uint32_t, ETEntry > ETable
HSADevice * device
HSA agent (device) that is controled by this driver.
void allocateQueue(ThreadContext *tc, Addr ioc_buf)
Forward relevant parameters to packet processor; queueID is used to link doorbell.
DriverWakeupEvent timerEvent
Addr mmap(ThreadContext *tc, Addr start, uint64_t length, int prot, int tgt_flags, int tgt_fd, off_t offset)
Currently, mmap() will simply setup a mapping for the associated device's packet processor's doorbell...
int open(ThreadContext *tc, int mode, int flags)
Create an FD entry for the KFD inside of the owning process.
Generated on Tue Jun 22 2021 15:28:28 for gem5 by doxygen 1.8.17