ladybird/Kernel/Devices
Liav A fb7b4caa57 Kernel/Storage: Implement basic AHCI hotplug support
This is really a basic support for AHCI hotplug events, so we know how
to add a node representing the device in /sys/dev/block and removing it
according to the event type (insertion/removal).

This change doesn't take into account what happens if the device was
mounted or a read/write operation is being handled.

For this to work correctly, StorageManagement now uses the Singleton
container, as it might be accessed simultaneously from many CPUs
for hotplug events. DiskPartition holds a WeakPtr instead of a RefPtr,
to allow removal of a StorageDevice object from the heap.
StorageDevices are now stored and being referenced to via an
IntrusiveList to make it easier to remove them on hotplug event.

In future changes, all of the stated above might change, but for now,
this commit represents the least amount of changes to make everything
to work correctly.
2021-09-08 00:42:20 +02:00
..
HID Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
AsyncDeviceRequest.cpp Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
AsyncDeviceRequest.h Kernel: Make UserOrKernelBuffer return KResult from read/write/memset 2021-09-07 13:53:14 +02:00
BlockDevice.cpp Kernel: Make Device request creation return KResultOr 2021-09-07 16:42:03 +02:00
BlockDevice.h Kernel/Storage: Implement basic AHCI hotplug support 2021-09-08 00:42:20 +02:00
CharacterDevice.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CharacterDevice.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Device.cpp Kernel: Expose device presence in /sys/dev/char and /sys/dev/block 2021-09-08 00:42:20 +02:00
Device.h Kernel: Expose device presence in /sys/dev/char and /sys/dev/block 2021-09-08 00:42:20 +02:00
FullDevice.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
FullDevice.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
KCOVDevice.cpp Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
KCOVDevice.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
KCOVInstance.cpp Kernel/KCOV: Use TRY() in KCOVInstance::buffer_allocate() 2021-09-06 20:33:35 +02:00
KCOVInstance.h Kernel/KCOV: Bring closer to typical SerenityOS coding style 2021-09-06 01:55:27 +02:00
MemoryDevice.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
MemoryDevice.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
NullDevice.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
NullDevice.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
PCISerialDevice.cpp Kernel/PCI: Simplify the entire subsystem 2021-09-07 13:47:37 +02:00
PCISerialDevice.h Kernel: Rename PCI::DeviceController => PCI::Device 2021-08-23 01:07:45 +02:00
PCSpeaker.cpp Kernel: Move special sections into Sections.h 2021-06-24 00:38:23 +02:00
PCSpeaker.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RandomDevice.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
RandomDevice.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
SB16.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
SB16.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
SerialDevice.cpp Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
SerialDevice.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
VMWareBackdoor.cpp Everywhere: Replace AK::Singleton => Singleton 2021-08-08 00:03:45 +02:00
VMWareBackdoor.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ZeroDevice.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ZeroDevice.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00