mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 05:37:35 +00:00
Kernel/PCI: Break early of controller iteration over devices in OOM case
This is mainly useful when adding an HostController but due to OOM condition, we abort temporary Vector insertion of a DeviceIdentifier and then exit the iteration loop to report back the error if occured.
This commit is contained in:
parent
3fb289e27d
commit
428d4ae337
5 changed files with 18 additions and 13 deletions
|
@ -31,7 +31,7 @@ protected:
|
|||
explicit HostBridge(PCI::Domain const&);
|
||||
|
||||
private:
|
||||
virtual void enumerate_attached_devices(Function<void(DeviceIdentifier)> callback) override;
|
||||
virtual void enumerate_attached_devices(Function<IterationDecision(DeviceIdentifier)> callback) override;
|
||||
|
||||
Bitmap m_enumerated_buses;
|
||||
|
||||
|
@ -41,9 +41,9 @@ private:
|
|||
Optional<u8> get_capabilities_pointer_for_function(BusNumber, DeviceNumber, FunctionNumber);
|
||||
Vector<Capability> get_capabilities_for_function(BusNumber, DeviceNumber, FunctionNumber);
|
||||
|
||||
void enumerate_bus(Function<void(DeviceIdentifier)> const& callback, BusNumber, bool recursive);
|
||||
void enumerate_functions(Function<void(DeviceIdentifier)> const& callback, BusNumber, DeviceNumber, FunctionNumber, bool recursive);
|
||||
void enumerate_device(Function<void(DeviceIdentifier)> const& callback, BusNumber bus, DeviceNumber device, bool recursive);
|
||||
void enumerate_bus(Function<IterationDecision(DeviceIdentifier)> const& callback, BusNumber, bool recursive);
|
||||
void enumerate_functions(Function<IterationDecision(DeviceIdentifier)> const& callback, BusNumber, DeviceNumber, FunctionNumber, bool recursive);
|
||||
void enumerate_device(Function<IterationDecision(DeviceIdentifier)> const& callback, BusNumber bus, DeviceNumber device, bool recursive);
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue