From 3cfdc6e3636d8cd41a3583537ad553f28f63e3c2 Mon Sep 17 00:00:00 2001 From: Jesse Buhagiar Date: Fri, 21 Oct 2022 17:18:27 +1100 Subject: [PATCH] Kernel/USB: Add `get_driver_by_name` helper in USBManagement --- Kernel/Bus/USB/USBManagement.cpp | 6 ++++++ Kernel/Bus/USB/USBManagement.h | 1 + 2 files changed, 7 insertions(+) diff --git a/Kernel/Bus/USB/USBManagement.cpp b/Kernel/Bus/USB/USBManagement.cpp index 6c868de957..07e5822532 100644 --- a/Kernel/Bus/USB/USBManagement.cpp +++ b/Kernel/Bus/USB/USBManagement.cpp @@ -81,6 +81,12 @@ void USBManagement::register_driver(NonnullLockRefPtr driver) m_available_drivers.append(driver); } +LockRefPtr USBManagement::get_driver_by_name(StringView name) +{ + auto it = m_available_drivers.find_if([name](auto driver) { return driver->name() == name; }); + return it.is_end() ? nullptr : LockRefPtr { *it }; +} + void USBManagement::unregister_driver(NonnullLockRefPtr driver) { dbgln_if(USB_DEBUG, "Unregistering driver {}", driver->name()); diff --git a/Kernel/Bus/USB/USBManagement.h b/Kernel/Bus/USB/USBManagement.h index 12337f007d..3940be2181 100644 --- a/Kernel/Bus/USB/USBManagement.h +++ b/Kernel/Bus/USB/USBManagement.h @@ -22,6 +22,7 @@ public: static USBManagement& the(); void register_driver(NonnullLockRefPtr driver); + LockRefPtr get_driver_by_name(StringView name); void unregister_driver(NonnullLockRefPtr driver); Vector>& available_drivers() { return m_available_drivers; }