1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 09:37:34 +00:00
serenity/Kernel/Devices
Jesse 59e122f8ba Kernel: Expand PATA driver to support multiple hard drives (#365)
The previous implementation of the PIIX3/4 PATA/IDE channel driver only
supported a single drive, as the object model was wrong (the channel
inherits the IRQ, not the disk drive itself). This fixes it by 'attaching'
two `PATADiskDevices` to a `PATAChannel`, which makes more sense.

The reading/writing code is presented as is, which violates the spec
outlined by Seagate in the linked datasheet. That spec is rather old,
so it might not be 100% up to date, though may cause issues on real
hardware, so until we can actually test it, this will suffice.
2019-07-28 15:44:01 +02:00
..
BlockDevice.cpp Kernel: Move devices into Kernel/Devices/. 2019-04-03 12:36:40 +02:00
BlockDevice.h Kernel: Move VirtualAddress.h into VM/ 2019-07-09 15:04:45 +02:00
BXVGADevice.cpp Kernel: Remove unnecessary use of LibDraw. 2019-07-18 10:36:26 +02:00
BXVGADevice.h Kernel: Remove unnecessary use of LibDraw. 2019-07-18 10:36:26 +02:00
CharacterDevice.cpp Kernel: Move devices into Kernel/Devices/. 2019-04-03 12:36:40 +02:00
CharacterDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
DebugLogDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DebugLogDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Device.cpp Kernel: Run clang-format on everything. 2019-06-07 11:43:58 +02:00
Device.h Kernel: Move File.{cpp,h} into FileSystem/ 2019-07-09 15:04:45 +02:00
DiskDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DiskDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DiskPartition.cpp Kernel: Remove use of copy_ref() in favor of regular RefPtr copies. 2019-07-11 15:40:04 +02:00
DiskPartition.h Kernel: Remove use of copy_ref() in favor of regular RefPtr copies. 2019-07-11 15:40:04 +02:00
FileBackedDiskDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
FileBackedDiskDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
FloppyDiskDevice.cpp Kernel: Initial FDC Device Driver (#315) 2019-07-17 15:51:51 +02:00
FloppyDiskDevice.h Kernel: Initial FDC Device Driver (#315) 2019-07-17 15:51:51 +02:00
FullDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
FullDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KeyboardDevice.cpp Kernel: Move PIC.cpp into Arch/i386/ 2019-07-09 15:04:43 +02:00
KeyboardDevice.h Kernel: Remove use of [[gnu::pure]]. 2019-07-16 13:44:41 +02:00
MBRPartitionTable.cpp Kernel: Remove use of copy_ref() in favor of regular RefPtr copies. 2019-07-11 15:40:04 +02:00
MBRPartitionTable.h Kernel: Remove use of copy_ref() in favor of regular RefPtr copies. 2019-07-11 15:40:04 +02:00
NullDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
NullDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PATAChannel.cpp Kernel: Expand PATA driver to support multiple hard drives (#365) 2019-07-28 15:44:01 +02:00
PATAChannel.h Kernel: Expand PATA driver to support multiple hard drives (#365) 2019-07-28 15:44:01 +02:00
PATADiskDevice.cpp Kernel: Expand PATA driver to support multiple hard drives (#365) 2019-07-28 15:44:01 +02:00
PATADiskDevice.h Kernel: Expand PATA driver to support multiple hard drives (#365) 2019-07-28 15:44:01 +02:00
PCSpeaker.cpp Kernel: Move File.{cpp,h} into FileSystem/ 2019-07-09 15:04:45 +02:00
PCSpeaker.h Kernel: Add a beep() syscall that beeps the PC speaker. 2019-05-15 21:40:41 +02:00
PS2MouseDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PS2MouseDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
RandomDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
RandomDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
SB16.cpp Thread: Return a result from block() indicating why the block terminated 2019-07-20 12:15:24 +02:00
SB16.h Kernel: Add Thread::block_until(Condition). 2019-07-14 14:54:54 +02:00
SerialDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
SerialDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ZeroDevice.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ZeroDevice.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00