diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-04-02 15:18:05 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-04-02 15:18:05 +0200 |
| commit | 3e80b6baa8f9666a9dd3cd4531bc68a3de4fee92 (patch) | |
| tree | 29bd443811905ead4e8bdd2b350c429757c8b8be /kernel/kapi | |
| parent | ab4c59912c526d515e6e72188c08a7f92e5573e8 (diff) | |
| download | teachos-3e80b6baa8f9666a9dd3cd4531bc68a3de4fee92.tar.xz teachos-3e80b6baa8f9666a9dd3cd4531bc68a3de4fee92.zip | |
kapi: allow for device searches
Diffstat (limited to 'kernel/kapi')
| -rw-r--r-- | kernel/kapi/devices.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/kernel/kapi/devices.cpp b/kernel/kapi/devices.cpp index c0b738e..7d35778 100644 --- a/kernel/kapi/devices.cpp +++ b/kernel/kapi/devices.cpp @@ -11,6 +11,7 @@ #include <atomic> #include <cstddef> #include <optional> +#include <string_view> #include <utility> namespace kapi::devices @@ -62,4 +63,25 @@ namespace kapi::devices return false; } + auto find_device(std::size_t major, std::size_t minor) -> kstd::observer_ptr<device> + { + if (device_tree.contains(std::pair{major, minor})) + { + return device_tree.at(std::pair{major, minor}); + } + return nullptr; + } + + auto find_device(std::string_view name) -> kstd::observer_ptr<device> + { + for (auto const & [key, value] : device_tree) + { + if (value->name() == name) + { + return value; + } + } + return nullptr; + } + } // namespace kapi::devices
\ No newline at end of file |
