aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/kernel/devices/storage/ram_disk/controller.cpp13
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, &current_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