22 bool negotiate(uint64_t supportedFeatures, uint64_t requiredFeatures = 0);
23 bool setupQueue(uint16_t index,
Queue& queue);
28 void notify(uint16_t index);
30 uint64_t features()
const {
33 bool writeDeviceConfig8(uint16_t offset, uint8_t value);
34 bool readDeviceConfig8(uint16_t offset, uint8_t& value);
35 bool readDeviceConfig16(uint16_t offset, uint16_t& value);
36 bool readDeviceConfig32(uint16_t offset, uint32_t& value);
37 bool readDeviceConfig64(uint16_t offset, uint64_t& value);
41 static constexpr size_t MaxQueues = 64;
49 bool locateCapabilities();
50 bool readConfig(uint16_t offset,
unsigned width, uint64_t& value);
51 bool status(uint8_t bits);
52 bool isDmaActive()
const {
60 Capability m_DeviceConfig;
62 Queue* m_Queues[MaxQueues];
63 uint32_t m_NotifyOffsets[MaxQueues];
64 uint32_t m_NotifyMultiplier;