diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-07-16 18:14:19 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-07-16 18:14:19 +0200 |
| commit | 8da15a362e67e520c9e0812b7bc782be3e256285 (patch) | |
| tree | 3248a4a6793e088224b6ad95ae54e3ae2749acb1 | |
| parent | 5979e2beb923632a683f6d763e7dc891c63c5eb9 (diff) | |
| download | kernel-8da15a362e67e520c9e0812b7bc782be3e256285.tar.xz kernel-8da15a362e67e520c9e0812b7bc782be3e256285.zip | |
kernel/rd: register block device interface
| -rw-r--r-- | kernel/kernel/devices/storage/ram_disk/controller.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/kernel/devices/storage/ram_disk/controller.cpp b/kernel/kernel/devices/storage/ram_disk/controller.cpp index c260e1cd..905279a4 100644 --- a/kernel/kernel/devices/storage/ram_disk/controller.cpp +++ b/kernel/kernel/devices/storage/ram_disk/controller.cpp @@ -3,6 +3,8 @@ #include <kernel/devices/storage/ram_disk/device.hpp> #include <kapi/boot_module/boot_module_registry.hpp> +#include <kapi/devices.hpp> +#include <kapi/system.hpp> #include <kstd/memory.hpp> @@ -21,7 +23,16 @@ namespace kernel::devices::storage::ram_disk std::ranges::for_each(*m_boot_module_registry, [this, ¤t_device_index](auto const & module) { auto const minor = current_device_index++; - m_devices.push_back(kstd::make_shared<device>(module, m_major, minor, minor)); + auto const disk = kstd::make_shared<device>(module, m_major, minor, minor); + disk->init(); + + if (auto published = kapi::devices::publish_interface<kapi::devices::block_device>(disk, disk->name()); + !published) + { + kapi::system::panic("[DEV:RD] Failed to publish block device interface of '{}'", disk->name()); + } + + m_devices.push_back(std::move(disk)); }); } } // namespace kernel::devices::storage::ram_disk
\ No newline at end of file |
