aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp2
-rw-r--r--kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp26
2 files changed, 17 insertions, 11 deletions
diff --git a/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp
index 7d656b1..699c547 100644
--- a/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp
+++ b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp
@@ -23,8 +23,6 @@ namespace devices::storage::ram_disk
auto device_by_major_minor(size_t major, size_t minor) -> block_device * override;
private:
- auto create_device_from_boot_module(kapi::boot_modules::boot_module const & module) -> void;
-
kapi::boot_modules::boot_module_registry const * m_boot_module_registry;
std::array<ram_disk_device, 1> m_devices{}; // TODO BA-FS26 use kstd::vector when available
};
diff --git a/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp b/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp
index 1f70e2d..1235c46 100644
--- a/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp
+++ b/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp
@@ -24,21 +24,29 @@ namespace devices::storage::ram_disk
size_t current_device_index = 0; // Starte bei 0
std::ranges::for_each(*m_boot_module_registry, [this, &current_device_index](auto const & module) {
- auto const minor = current_device_index * m_minors_per_device;
+ auto const minor = current_device_index++ * m_minors_per_device;
// TODO BA-FS26 use push_back from kstd::vector when available
m_devices.at(0) = ram_disk_device{module, m_major, minor};
-
- current_device_index++;
});
- std::ranges::for_each(*m_boot_module_registry,
- [this](auto const & module) { create_device_from_boot_module(module); });
- }
+ std::ranges::for_each(m_devices, [](auto device) {
+ std::array<std::byte, ram_disk_device::block_size> buffer{};
+ device.read_block(0, buffer.data());
- auto ram_disk_controller::create_device_from_boot_module(kapi::boot_modules::boot_module const & module) -> void
- {
- m_devices.at(0) = ram_disk_device{module};
+ kstd::println("Contents of Block 0 for device:");
+
+ for (size_t i = 0; i < buffer.size(); ++i)
+ {
+ kstd::print("{:02x} ", static_cast<uint8_t>(buffer[i]));
+
+ if ((i + 1) % 16 == 0)
+ {
+ kstd::println("");
+ }
+ }
+ kstd::println("--- End of Block ---");
+ });
}
auto ram_disk_controller::device_by_major_minor(size_t major, size_t minor) -> block_device *