diff options
Diffstat (limited to 'kernel/devices/src')
| -rw-r--r-- | kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
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, ¤t_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 * |
