mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:47:45 +00:00
IDEDiskDevice: Support reading multiple sectors at a time with DMA.
This is another sizable improvement to GCC compile times.
This commit is contained in:
parent
ed79116e94
commit
c7d8aa6969
4 changed files with 27 additions and 14 deletions
|
@ -24,6 +24,7 @@ public:
|
|||
virtual unsigned block_size() const override;
|
||||
virtual bool read_block(unsigned index, byte*) const override;
|
||||
virtual bool write_block(unsigned index, const byte*) override;
|
||||
virtual bool read_blocks(unsigned index, word count, byte*) override;
|
||||
|
||||
protected:
|
||||
IDEDiskDevice();
|
||||
|
@ -37,7 +38,7 @@ private:
|
|||
|
||||
void initialize();
|
||||
bool wait_for_irq();
|
||||
bool read_sector_with_dma(dword sector, byte*);
|
||||
bool read_sectors_with_dma(dword sector, word count, byte*);
|
||||
bool read_sectors(dword start_sector, word count, byte* buffer);
|
||||
bool write_sectors(dword start_sector, word count, const byte* data);
|
||||
|
||||
|
@ -50,6 +51,7 @@ private:
|
|||
|
||||
PCI::Address m_pci_address;
|
||||
PhysicalRegionDescriptor m_prdt;
|
||||
RetainPtr<PhysicalPage> m_dma_buffer_page;
|
||||
word m_bus_master_base { 0 };
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue