aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi/boot_modules/device.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kapi/boot_modules/device.cpp')
-rw-r--r--kernel/kapi/boot_modules/device.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/kernel/kapi/boot_modules/device.cpp b/kernel/kapi/boot_modules/device.cpp
new file mode 100644
index 00000000..84a43c1c
--- /dev/null
+++ b/kernel/kapi/boot_modules/device.cpp
@@ -0,0 +1,39 @@
+#include <kapi/boot_modules/device.hpp>
+
+#include <kapi/boot_modules/module.hpp>
+#include <kapi/devices.hpp>
+
+#include <kstd/format.hpp>
+
+#include <cstddef>
+#include <string_view>
+
+namespace kapi::boot_modules
+{
+
+ device::device(std::size_t index, kapi::boot_modules::module const & module)
+ : kapi::devices::device{kstd::format("device{}", index)}
+ , m_module(module)
+ {}
+
+ auto device::command_line() const -> std::string_view
+ {
+ return m_module.name;
+ }
+
+ auto device::module() const -> boot_modules::module const &
+ {
+ return m_module;
+ }
+
+ auto device::query_interface(kapi::devices::interface_id interface) -> void *
+ {
+ if (interface == boot_module_signature::id)
+ {
+ return static_cast<boot_module_signature *>(this);
+ }
+
+ return kapi::devices::device::query_interface(interface);
+ }
+
+} // namespace kapi::boot_modules \ No newline at end of file