diff options
Diffstat (limited to 'kernel/kapi/boot_modules')
| -rw-r--r-- | kernel/kapi/boot_modules/device.cpp | 39 |
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 |
