|
| | AhciPort (IoBase *registers, size_t port) |
| |
| bool | initialise (uint32_t capabilities, uint32_t version, uint32_t extendedCapabilities) |
| |
| void | shutdown () |
| |
| void | enableInterrupts () |
| |
| bool | interrupt (bool pending) |
| |
| bool | command (uint8_t opcode, uint64_t lba, uint16_t sectors, void *buffer, size_t bytes, bool write, bool interrupts, bool interruptProbe=false) |
| |
| bool | readBatch (Disk::ReadBuffer *buffers, size_t count, bool interrupts) |
| |
| bool | writeBatch (Disk::WriteBuffer *buffers, size_t count, bool interrupts) |
| |
| size_t | interruptCompletions () const |
| |
| size_t | maximumOutstanding () const |
| |
| void | configureDisk (size_t sectorBytes, size_t queueDepth) |
| |
| size_t | sectorBytes () const |
| |
|
| bool | transferBatch (Disk::ReadBuffer *buffers, size_t count, bool interrupts, bool writing) |
| |
| uint32_t | read (size_t reg) const |
| |
| void | write (size_t reg, uint32_t value) |
| |
| void | waitForProgress () |
| |
| bool | waitClear (size_t reg, uint32_t bits, size_t milliseconds) |
| |
| bool | stopEngines () |
| |
| void | acknowledge (uint32_t status) |
| |
| void | observe (uint32_t status, bool fromInterrupt) |
| |
| void | pollCompletions (bool interrupts) |
| |
| bool | chooseSlot (bool queued, size_t &index) |
| |
| bool | issueCommand (size_t index, uint8_t opcode, uint64_t lba, uint16_t sectors, void *buffer, size_t bytes, bool writing, bool queued, bool interrupts) |
| |
| bool | reapCommand (size_t index, uint8_t opcode, void *buffer, size_t bytes, bool writing, bool queued, bool interrupts, bool interruptProbe) |
| |
Definition at line 24 of file AhciPort.h.
◆ AhciPort()
| AhciPort::AhciPort |
( |
IoBase * |
registers, |
|
|
size_t |
port |
|
) |
| |
◆ ~AhciPort()
◆ acknowledge()
| void AhciPort::acknowledge |
( |
uint32_t |
status | ) |
|
|
private |
◆ chooseSlot()
| bool AhciPort::chooseSlot |
( |
bool |
queued, |
|
|
size_t & |
index |
|
) |
| |
|
private |
◆ command()
| bool AhciPort::command |
( |
uint8_t |
opcode, |
|
|
uint64_t |
lba, |
|
|
uint16_t |
sectors, |
|
|
void * |
buffer, |
|
|
size_t |
bytes, |
|
|
bool |
write, |
|
|
bool |
interrupts, |
|
|
bool |
interruptProbe = false |
|
) |
| |
◆ configureDisk()
| void AhciPort::configureDisk |
( |
size_t |
sectorBytes, |
|
|
size_t |
queueDepth |
|
) |
| |
◆ enableInterrupts()
| void AhciPort::enableInterrupts |
( |
| ) |
|
◆ initialise()
| bool AhciPort::initialise |
( |
uint32_t |
capabilities, |
|
|
uint32_t |
version, |
|
|
uint32_t |
extendedCapabilities |
|
) |
| |
◆ interrupt()
| bool AhciPort::interrupt |
( |
bool |
pending | ) |
|
◆ interruptCompletions()
| size_t AhciPort::interruptCompletions |
( |
| ) |
const |
◆ issueCommand()
| bool AhciPort::issueCommand |
( |
size_t |
index, |
|
|
uint8_t |
opcode, |
|
|
uint64_t |
lba, |
|
|
uint16_t |
sectors, |
|
|
void * |
buffer, |
|
|
size_t |
bytes, |
|
|
bool |
writing, |
|
|
bool |
queued, |
|
|
bool |
interrupts |
|
) |
| |
|
private |
◆ maximumOutstanding()
| size_t AhciPort::maximumOutstanding |
( |
| ) |
const |
◆ observe()
| void AhciPort::observe |
( |
uint32_t |
status, |
|
|
bool |
fromInterrupt |
|
) |
| |
|
private |
◆ pollCompletions()
| void AhciPort::pollCompletions |
( |
bool |
interrupts | ) |
|
|
private |
◆ read()
| uint32_t AhciPort::read |
( |
size_t |
reg | ) |
const |
|
private |
◆ readBatch()
| bool AhciPort::readBatch |
( |
Disk::ReadBuffer * |
buffers, |
|
|
size_t |
count, |
|
|
bool |
interrupts |
|
) |
| |
◆ reapCommand()
| bool AhciPort::reapCommand |
( |
size_t |
index, |
|
|
uint8_t |
opcode, |
|
|
void * |
buffer, |
|
|
size_t |
bytes, |
|
|
bool |
writing, |
|
|
bool |
queued, |
|
|
bool |
interrupts, |
|
|
bool |
interruptProbe |
|
) |
| |
|
private |
◆ sectorBytes()
| size_t AhciPort::sectorBytes |
( |
| ) |
const |
|
inline |
◆ shutdown()
| void AhciPort::shutdown |
( |
| ) |
|
◆ stopEngines()
| bool AhciPort::stopEngines |
( |
| ) |
|
|
private |
◆ transferBatch()
| bool AhciPort::transferBatch |
( |
Disk::ReadBuffer * |
buffers, |
|
|
size_t |
count, |
|
|
bool |
interrupts, |
|
|
bool |
writing |
|
) |
| |
|
private |
◆ waitClear()
| bool AhciPort::waitClear |
( |
size_t |
reg, |
|
|
uint32_t |
bits, |
|
|
size_t |
milliseconds |
|
) |
| |
|
private |
◆ waitForProgress()
| void AhciPort::waitForProgress |
( |
| ) |
|
|
private |
◆ write()
| void AhciPort::write |
( |
size_t |
reg, |
|
|
uint32_t |
value |
|
) |
| |
|
private |
◆ writeBatch()
| bool AhciPort::writeBatch |
( |
Disk::WriteBuffer * |
buffers, |
|
|
size_t |
count, |
|
|
bool |
interrupts |
|
) |
| |
◆ m_Active
| uint32_t AhciPort::m_Active |
|
private |
◆ m_AddressesInstalled
| bool AhciPort::m_AddressesInstalled |
|
private |
◆ m_CommandLock
| Mutex AhciPort::m_CommandLock |
|
private |
◆ m_Control
◆ m_InterruptCompletions
| size_t AhciPort::m_InterruptCompletions |
|
private |
◆ m_MaximumOutstanding
| size_t AhciPort::m_MaximumOutstanding |
|
private |
◆ m_Online
◆ m_Outstanding
| size_t AhciPort::m_Outstanding |
|
private |
◆ m_PolledInterrupt
| bool AhciPort::m_PolledInterrupt |
|
private |
◆ m_Port
◆ m_Queued
| uint32_t AhciPort::m_Queued |
|
private |
◆ m_QueueDepth
| size_t AhciPort::m_QueueDepth |
|
private |
◆ m_Registers
◆ m_SectorBytes
| size_t AhciPort::m_SectorBytes |
|
private |
◆ m_SlotCount
| size_t AhciPort::m_SlotCount |
|
private |
◆ m_Slots
| Slot AhciPort::m_Slots[32] |
|
private |
◆ m_StateLock
| Mutex AhciPort::m_StateLock |
|
mutableprivate |
◆ m_SupportsNcq
| bool AhciPort::m_SupportsNcq |
|
private |
The documentation for this class was generated from the following files: