32 bool submit(
const Buffer* buffers,
size_t count,
void* cookie);
34 uint16_t depth()
const {
41 static constexpr uint16_t MaxDepth = 256;
42 static constexpr uint16_t Invalid = 0xffff;
51 bool initialise(uint16_t depth,
PciTransport* transport);
52 uint64_t descriptorAddress()
const {
53 return m_Descriptors.physicalAddress();
55 uint64_t availableAddress()
const {
56 return m_Available.physicalAddress();
58 uint64_t usedAddress()
const {
59 return m_Used.physicalAddress();
66 PciTransport* m_Transport;
67 void* m_Cookies[MaxDepth];
68 uint16_t m_Next[MaxDepth];
69 uint16_t m_ChainLength[MaxDepth];
73 uint16_t m_AvailableIndex;
75 bool m_Active[MaxDepth];