|
| enum class | Result { Success
, CommandError
, TransportError
} |
| |
|
| bool | initialise (IoBase *registers, uint16_t id, uint16_t depth, size_t stride, size_t transferBytes, Device *dmaDevice) |
| |
| Result | execute (Nvme::Command command, void *buffer, size_t bytes, bool writing, bool interrupts, size_t timeoutSeconds, uint32_t *result=nullptr, bool interruptProbe=false, bool cacheFill=false, physical_uintptr_t directWritePhysical=0, PciBus::DmaMapping *directReadMapping=nullptr) |
| |
| bool | complete (bool fromInterrupt) |
| |
| void | stop () |
| |
| void | releaseDma () |
| |
| size_t | interruptCompletions () const |
| |
| size_t | maximumOutstanding () const |
| |
| uint64_t | submissionAddress () const |
| |
| uint64_t | completionAddress () const |
| |
| uint16_t | depth () const |
| |
Definition at line 12 of file NvmeQueue.h.
◆ Result
| enum class NvmeQueue::Result |
|
strong |
◆ NvmeQueue()
◆ complete()
| bool NvmeQueue::complete |
( |
bool |
fromInterrupt | ) |
|
◆ completionAddress()
| uint64_t NvmeQueue::completionAddress |
( |
| ) |
const |
|
inline |
◆ depth()
| uint16_t NvmeQueue::depth |
( |
| ) |
const |
|
inline |
◆ execute()
| NvmeQueue::Result NvmeQueue::execute |
( |
Nvme::Command |
command, |
|
|
void * |
buffer, |
|
|
size_t |
bytes, |
|
|
bool |
writing, |
|
|
bool |
interrupts, |
|
|
size_t |
timeoutSeconds, |
|
|
uint32_t * |
result = nullptr, |
|
|
bool |
interruptProbe = false, |
|
|
bool |
cacheFill = false, |
|
|
physical_uintptr_t |
directWritePhysical = 0, |
|
|
PciBus::DmaMapping * |
directReadMapping = nullptr |
|
) |
| |
◆ initialise()
| bool NvmeQueue::initialise |
( |
IoBase * |
registers, |
|
|
uint16_t |
id, |
|
|
uint16_t |
depth, |
|
|
size_t |
stride, |
|
|
size_t |
transferBytes, |
|
|
Device * |
dmaDevice |
|
) |
| |
◆ interruptCompletions()
| size_t NvmeQueue::interruptCompletions |
( |
| ) |
const |
◆ maximumOutstanding()
| size_t NvmeQueue::maximumOutstanding |
( |
| ) |
const |
◆ observe()
| bool NvmeQueue::observe |
( |
bool |
fromInterrupt, |
|
|
bool |
interruptsEnabled = false |
|
) |
| |
|
private |
◆ releaseDma()
| void NvmeQueue::releaseDma |
( |
| ) |
|
Release mappings after the controller has stopped DMA and drained commands.
Definition at line 118 of file NvmeQueue.cc.
◆ stop()
◆ stopLocked()
| void NvmeQueue::stopLocked |
( |
| ) |
|
|
private |
◆ submissionAddress()
| uint64_t NvmeQueue::submissionAddress |
( |
| ) |
const |
|
inline |
◆ m_Available
◆ m_Completion
◆ m_CompletionDma
◆ m_Depth
| uint16_t NvmeQueue::m_Depth |
|
private |
◆ m_DmaDevice
| Device* NvmeQueue::m_DmaDevice |
|
private |
◆ m_Head
| uint16_t NvmeQueue::m_Head |
|
private |
◆ m_Id
◆ m_InterruptCompletions
| size_t NvmeQueue::m_InterruptCompletions |
|
private |
◆ m_Lock
◆ m_MaximumOutstanding
| size_t NvmeQueue::m_MaximumOutstanding |
|
private |
◆ m_Online
◆ m_Outstanding
| size_t NvmeQueue::m_Outstanding |
|
private |
◆ m_Phase
◆ m_PolledInterrupt
| bool NvmeQueue::m_PolledInterrupt |
|
private |
◆ m_Registers
| IoBase* NvmeQueue::m_Registers |
|
private |
◆ m_Slots
| Slot NvmeQueue::m_Slots[Nvme::QueueDepth - 1] |
|
private |
◆ m_Stride
| size_t NvmeQueue::m_Stride |
|
private |
◆ m_Submission
◆ m_SubmissionDma
◆ m_SubmissionHead
| uint16_t NvmeQueue::m_SubmissionHead |
|
private |
◆ m_Tail
| uint16_t NvmeQueue::m_Tail |
|
private |
◆ m_TransferBytes
| size_t NvmeQueue::m_TransferBytes |
|
private |
The documentation for this class was generated from the following files: