|
| | AhciDisk (AhciController *controller, size_t port) |
| |
| bool | initialise () |
| |
| void | getName (String &name) override |
| |
| size_t | getSize () const override |
| | Gets the size of the disk.
|
| |
| size_t | getBlockCount () const override |
| |
| size_t | getBlockSize () const override |
| | Gets the preferred I/O extent of the disk.
|
| |
| size_t | getNativeBlockSize () const override |
| |
| uint64_t | doRead (uint64_t location) override |
| |
| uint64_t | doWrite (uint64_t location) override |
| |
| uint64_t | doWriteDirect (uint64_t location, uintptr_t page) override |
| |
| uint64_t | doSync (uint64_t location) override |
| |
| AhciController * | controller () const |
| |
| size_t | port () const |
| |
| void | shutdownCache () |
| |
| virtual void | shutdownDeviceCache () |
| |
| bool | hasNoCacheLoans () |
| |
| bool | initialise (class ScsiController *pController, size_t nUnit) |
| |
| virtual BufferView | read (uint64_t location) |
| |
| bool | readInto (uint64_t location, void *buffer, size_t length) override |
| |
| bool | readIntoBatch (ReadBuffer *buffers, size_t count) override |
| |
| bool | writeFrom (uint64_t location, const void *buffer, size_t length) override |
| |
| bool | writeFromBatch (WriteBuffer *buffers, size_t count) override |
| |
| bool | syncData () override |
| |
| virtual void | write (uint64_t location) |
| |
| virtual void | flush (uint64_t location) |
| | Flush a cached page to disk.
|
| |
| virtual bool | sync (uint64_t location, bool async) |
| |
| virtual MUST_USE_RESULT bool | syncAll () |
| |
| bool | zero (uint64_t location, size_t length) override |
| |
| bool | syncPages (const uint64_t *locations, size_t count) override |
| |
| virtual MUST_USE_RESULT bool | retireCachePage (uint64_t location) |
| |
| virtual void | align (uint64_t location) |
| | Sets the page boundary alignment after a specific location on the disk.
|
| |
| virtual PagingStatus | doPagingTransfer (PagingOperation operation, uint64_t offset, void *page) |
| |
| virtual bool | pin (uint64_t location) |
| | Pins a cache page.
|
| |
| virtual void | unpin (uint64_t location) |
| |
| | Disk (Device *p) |
| |
| virtual Disk * | physicalDisk () |
| |
| bool | acquireUse (DiskUse &use) |
| |
| uint32_t | endpointId () |
| |
| virtual bool | getPartitionUuid (String &uuid) const |
| |
| virtual bool | getPartitionLabel (String &label) const |
| |
| virtual PagingStatus | preparePagingTransport (PagingTransport *&transport) |
| |
| void | retireEndpoint () |
| |
| bool | tryCloseEndpoint () |
| |
| void | reopenEndpoint () |
| |
| virtual Type | getType () |
| |
| virtual SubType | getSubType () |
| |
| virtual void | dump (String &str) |
| |
| virtual DiskReadView | readView (uint64_t location) |
| |
| virtual DiskWriteView | writeView (uint64_t location) |
| |
| MUST_USE_RESULT bool | readViews (uint64_t location, size_t length, BufferViewSequence &views) |
| |
| void | unpinViews (uint64_t location, BufferViewSequence &views) |
| |
| virtual bool | cacheIsCritical () |
| | Whether or not the cache is critical and cannot be flushed or deleted.
|
| |
| | Device (Device *p) |
| |
| Device * | getParent () const |
| |
| void | setParent (Device *p) |
| |
| virtual const String & | getSpecificType () |
| |
| virtual void | setSpecificType (String str) |
| |
| void | setPciPosition (uint32_t bus, uint32_t device, uint32_t func) |
| |
| void | setPciIdentifiers (uint8_t classCode, uint8_t subclassCode, uint16_t vendorId, uint16_t deviceId, uint8_t progIf) |
| |
| void | setPciConfigHeader (const PciBus::ConfigSpace &space) |
| |
| PciBus::ConfigSpace | getPciConfigHeader () const |
| |
| uint8_t | getPciClassCode () |
| |
| uint8_t | getPciSubclassCode () |
| |
| uint16_t | getPciVendorId () |
| |
| uint16_t | getPciDeviceId () |
| |
| uint8_t | getPciProgInterface () |
| |
| uint32_t | getPciBusPosition () |
| |
| uint32_t | getPciDevicePosition () |
| |
| uint32_t | getPciFunctionNumber () |
| |
| virtual Vector< Address * > & | addresses () |
| |
| virtual uintptr_t | getInterruptNumber () |
| |
| virtual void | setInterruptNumber (uintptr_t n) |
| |
| void | addChild (Device *pDevice) |
| |
| Device * | getChild (size_t n) |
| |
| size_t | getNumChildren () |
| |
| void | removeChild (size_t n) |
| |
| void | removeChild (Device *d) |
| |
| void | replaceChild (Device *src, Device *dest) |
| |
|
| enum | SubType { ATA = 0
, ATAPI
} |
| |
| enum | Type {
Generic
, Root
, Disk
, Bus
,
Display
, Network
, Sound
, Console
,
Mouse
, Controller
, UsbController
, UsbGeneric
,
UsbContainer
} |
| |
| typedef Device *(* | Callback) (Device *) |
| |
| static void | foreach (Callback callback, Device *root=0) |
| |
| template<class F , class... Args> |
| static void | foreach (pedigree_std::Callable< F > &callback, Device *root, Args... args) |
| |
| static void | addToRoot (Device *device) |
| |
| static void | searchByVendorId (uint16_t vendorId, void(*callback)(Device *), Device *root=0) |
| |
| static void | searchByVendorIdAndDeviceId (uint16_t vendorId, uint16_t deviceId, void(*callback)(Device *), Device *root=0) |
| |
| static void | searchByClass (uint16_t classCode, void(*callback)(Device *), Device *root=0) |
| |
| static void | searchByClassAndSubclass (uint16_t classCode, uint16_t subclassCode, void(*callback)(Device *), Device *root=0) |
| |
| static void | searchByClassSubclassAndProgInterface (uint16_t classCode, uint16_t subclassCode, uint8_t progInterface, void(*callback)(Device *), Device *root=0) |
| |
|
struct ScsiDisk::Sense | PACKED |
| |
|
struct ScsiDisk::Inquiry | PACKED |
| |
|
struct ScsiDisk::Capacity | PACKED |
| |
| static constexpr uint64_t | SyncWholeDevice = ~uint64_t{0} |
| |
| static constexpr size_t | MaxReadBuffers = 32 |
| |
| static constexpr size_t | MaxWriteBuffers = 32 |
| |
| static constexpr size_t | MaxSyncPages = 64 |
| |
| static bool | syncCacheBatch (const Cache::WritebackPage *pages, size_t count, void *context) |
| |
| static Device & | root () |
| |
| Vector< Address * > | m_Addresses |
| |
| Vector< Device * > | m_Children |
| |
| Device * | m_pParent |
| |
| uintptr_t | m_InterruptNumber |
| |
| String | m_SpecificType |
| |
| PciBus::ConfigSpace | m_ConfigHeader |
| |
| uint8_t | m_ClassCode |
| |
| uint8_t | m_SubclassCode |
| |
| uint16_t | m_VendorId |
| |
| uint16_t | m_DeviceId |
| |
| uint8_t | m_ProgInterface |
| |
| uint32_t | m_PciBusPos |
| |
| uint32_t | m_PciDevicePos |
| |
| uint32_t | m_PciFunctionNum |
| |
| static Device | m_Root |
| |
| static Mutex | m_TreeLock |
| |
Definition at line 24 of file AhciDisk.h.
| size_t AhciDisk::getBlockSize |
( |
| ) |
const |
|
overridevirtual |
Gets the preferred I/O extent of the disk.
This may describe a native device block or a larger cache-fill/readahead extent, depending on the implementation. It is independent of the cache page boundary reported by BufferView::size().
Reimplemented from ScsiDisk.
Definition at line 145 of file AhciDisk.cc.
References TargetInfo::getPageSize().