Kernel: Take EnumerableDeviceIdentifier by const ref instead of by value

It's 48 bytes.
This commit is contained in:
Idan Horowitz 2024-04-22 15:45:38 +03:00 committed by Andreas Kling
parent 6d255fb92b
commit 08d4b231e1
3 changed files with 9 additions and 9 deletions

View file

@ -160,7 +160,7 @@ UNMAP_AFTER_INIT void Access::rescan_hardware()
SpinlockLocker scan_locker(m_scan_lock);
VERIFY(m_device_identifiers.is_empty());
for (auto& [_, host_controller] : m_host_controllers) {
host_controller->enumerate_attached_devices([this](EnumerableDeviceIdentifier device_identifier) {
host_controller->enumerate_attached_devices([this](EnumerableDeviceIdentifier const& device_identifier) {
auto device_identifier_or_error = DeviceIdentifier::from_enumerable_identifier(device_identifier);
if (device_identifier_or_error.is_error()) {
dmesgln("Failed during PCI Access::rescan_hardware due to {}", device_identifier_or_error.error());

View file

@ -54,7 +54,7 @@ u16 HostController::read16_field(BusNumber bus, DeviceNumber device, FunctionNum
return read16_field(bus, device, function, to_underlying(field));
}
UNMAP_AFTER_INIT void HostController::enumerate_functions(Function<void(EnumerableDeviceIdentifier)> const& callback, BusNumber bus, DeviceNumber device, FunctionNumber function, bool recursive_search_into_bridges)
UNMAP_AFTER_INIT void HostController::enumerate_functions(Function<void(EnumerableDeviceIdentifier const&)> const& callback, BusNumber bus, DeviceNumber device, FunctionNumber function, bool recursive_search_into_bridges)
{
dbgln_if(PCI_DEBUG, "PCI: Enumerating function, bus={}, device={}, function={}", bus, device, function);
Address address(domain_number(), bus.value(), device.value(), function.value());
@ -83,7 +83,7 @@ UNMAP_AFTER_INIT void HostController::enumerate_functions(Function<void(Enumerab
}
}
UNMAP_AFTER_INIT void HostController::enumerate_device(Function<void(EnumerableDeviceIdentifier)> const& callback, BusNumber bus, DeviceNumber device, bool recursive_search_into_bridges)
UNMAP_AFTER_INIT void HostController::enumerate_device(Function<void(EnumerableDeviceIdentifier const&)> const& callback, BusNumber bus, DeviceNumber device, bool recursive_search_into_bridges)
{
dbgln_if(PCI_DEBUG, "PCI: Enumerating device in bus={}, device={}", bus, device);
if (read16_field(bus, device, 0, PCI::RegisterOffset::VENDOR_ID) == PCI::none_value)
@ -97,14 +97,14 @@ UNMAP_AFTER_INIT void HostController::enumerate_device(Function<void(EnumerableD
}
}
UNMAP_AFTER_INIT void HostController::enumerate_bus(Function<void(EnumerableDeviceIdentifier)> const& callback, BusNumber bus, bool recursive_search_into_bridges)
UNMAP_AFTER_INIT void HostController::enumerate_bus(Function<void(EnumerableDeviceIdentifier const&)> const& callback, BusNumber bus, bool recursive_search_into_bridges)
{
dbgln_if(PCI_DEBUG, "PCI: Enumerating bus {}", bus);
for (u8 device = 0; device < 32; ++device)
enumerate_device(callback, bus, device, recursive_search_into_bridges);
}
UNMAP_AFTER_INIT void HostController::enumerate_attached_devices(Function<void(EnumerableDeviceIdentifier)> callback)
UNMAP_AFTER_INIT void HostController::enumerate_attached_devices(Function<void(EnumerableDeviceIdentifier const&)> callback)
{
VERIFY(Access::the().access_lock().is_locked());
VERIFY(Access::the().scan_lock().is_locked());

View file

@ -31,12 +31,12 @@ public:
u32 domain_number() const { return m_domain.domain_number(); }
void enumerate_attached_devices(Function<void(EnumerableDeviceIdentifier)> callback);
void enumerate_attached_devices(Function<void(EnumerableDeviceIdentifier const&)> callback);
private:
void enumerate_bus(Function<void(EnumerableDeviceIdentifier)> const& callback, BusNumber, bool recursive);
void enumerate_functions(Function<void(EnumerableDeviceIdentifier)> const& callback, BusNumber, DeviceNumber, FunctionNumber, bool recursive);
void enumerate_device(Function<void(EnumerableDeviceIdentifier)> const& callback, BusNumber bus, DeviceNumber device, bool recursive);
void enumerate_bus(Function<void(EnumerableDeviceIdentifier const&)> const& callback, BusNumber, bool recursive_search_into_bridges);
void enumerate_functions(Function<void(EnumerableDeviceIdentifier const&)> const& callback, BusNumber, DeviceNumber, FunctionNumber, bool recursive_search_into_bridges);
void enumerate_device(Function<void(EnumerableDeviceIdentifier const&)> const& callback, BusNumber bus, DeviceNumber device, bool recursive_search_into_bridges);
u8 read8_field(BusNumber, DeviceNumber, FunctionNumber, RegisterOffset field);
u16 read16_field(BusNumber, DeviceNumber, FunctionNumber, RegisterOffset field);