serenity/Kernel/Storage
Liav A 36f6351edc Kernel: Restore IDE PIO functionality
This change can be actually seen as two logical changes, the first
change is about to ensure we only read the ATA Status register only
once, because if we read it multiple times, we acknowledge interrupts
unintentionally. To solve this issue, we always use the alternate Status
register and only read the original status register in the IRQ handler.

The second change is how we handle interrupts - if we use DMA, we can
just complete the request and return from the IRQ handler. For PIO mode,
it's more complicated. For PIO write operation, after setting the ATA
registers, we send out the data to IO port, and wait for an interrupt.
For PIO read operation, we set the ATA registers, and wait for an
interrupt to fire, then we just read from the data IO port.
2021-02-03 10:18:16 +01:00
..
Partition Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
IDEChannel.cpp Kernel: Restore IDE PIO functionality 2021-02-03 10:18:16 +01:00
IDEChannel.h Kernel/Storage: Rewrite IDE disk detection and disk access 2021-01-29 21:20:38 +01:00
IDEController.cpp Kernel: Untangle StorageController from PCI::DeviceController 2021-01-22 22:17:39 +01:00
IDEController.h Kernel: Untangle StorageController from PCI::DeviceController 2021-01-22 22:17:39 +01:00
PATADiskDevice.cpp Kernel/Storage: Rewrite IDE disk detection and disk access 2021-01-29 21:20:38 +01:00
PATADiskDevice.h Kernel/Storage: Rewrite IDE disk detection and disk access 2021-01-29 21:20:38 +01:00
RamdiskController.cpp Kernel: Implement RamdiskDevice 2021-01-22 22:17:39 +01:00
RamdiskController.h Kernel: Implement RamdiskDevice 2021-01-22 22:17:39 +01:00
RamdiskDevice.cpp Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
RamdiskDevice.h Kernel: Make device generate their own names 2021-01-22 22:17:39 +01:00
StorageController.h Kernel: Implement RamdiskDevice 2021-01-22 22:17:39 +01:00
StorageDevice.cpp Meta: Split debug defines into multiple headers. 2021-01-26 21:20:00 +01:00
StorageDevice.h Kernel: Implement RamdiskDevice 2021-01-22 22:17:39 +01:00
StorageManagement.cpp Kernel: Allow disabling of IDE controllers with disable_ide 2021-01-24 22:16:18 +01:00
StorageManagement.h Kernel: Allow to boot from a partition with partition UUID 2021-01-01 22:59:48 +01:00