aboutsummaryrefslogtreecommitdiff
path: root/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp')
-rw-r--r--kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp b/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp
index 9c6427d..c4807b0 100644
--- a/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp
+++ b/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp
@@ -1,6 +1,33 @@
#include "devices/storage/RAMDisk/RAMDiskController.hpp"
+#include "kapi/boot_module/boot_module.hpp"
+#include "kapi/boot_module/boot_module_registry.hpp"
+
+#include <kstd/print>
+
+#include <algorithm>
+#include <cstddef>
+
namespace devices::storage::ram_disk
{
- // TODO BA-FS26 implement ram disk controller functionality
+ ram_disk_controller::ram_disk_controller(kapi::boot_modules::boot_module_registry const * registry)
+ : m_boot_module_registry(registry)
+ {}
+
+ auto ram_disk_controller::probe() -> void
+ {
+ std::ranges::for_each(*m_boot_module_registry,
+ [this](auto const & module) { create_device_from_boot_module(module); });
+ }
+
+ auto ram_disk_controller::devices_count() -> size_t
+ {
+ return m_devices.size();
+ }
+
+ auto create_device_from_boot_module(kapi::boot_modules::boot_module const & module) -> void
+ {
+ kstd::println("[RAM DISK CONTROLLER] Found boot module: {} at address {} with size {} bytes", module.name,
+ module.start_address, module.size);
+ }
} // namespace devices::storage::ram_disk \ No newline at end of file