1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-10 12:07:35 +00:00

Kernel: Allow AHCIController::initialize() to fail

If we fail to initialize an AHCI controller, we now skip adding it to
the list of storage controllers in StorageManagement.
This commit is contained in:
Julian Offenhäuser 2023-03-14 14:13:50 +01:00 committed by Andreas Kling
parent d1e88a5141
commit 5541dfd9f8
3 changed files with 13 additions and 7 deletions

View file

@ -24,7 +24,7 @@ class AHCIController final : public ATAController
friend class AHCIInterruptHandler;
public:
static NonnullRefPtr<AHCIController> initialize(PCI::DeviceIdentifier const& pci_device_identifier);
static ErrorOr<NonnullRefPtr<AHCIController>> initialize(PCI::DeviceIdentifier const& pci_device_identifier);
virtual ~AHCIController() override;
virtual StringView device_name() const override { return "AHCI"sv; }
@ -43,7 +43,7 @@ private:
void enable_global_interrupts() const;
explicit AHCIController(PCI::DeviceIdentifier const&);
void initialize_hba(PCI::DeviceIdentifier const&);
ErrorOr<void> initialize_hba(PCI::DeviceIdentifier const&);
AHCI::HBADefinedCapabilities capabilities() const;
LockRefPtr<StorageDevice> device_by_port(u32 index) const;