diff options
| author | Lukas Oesch <lukasoesch20@gmail.com> | 2026-03-03 10:24:23 +0100 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-03-17 16:42:31 +0100 |
| commit | a8ebcdb0d16fe224d8f05577ea367864cb2fa9c2 (patch) | |
| tree | 466f06ac3d1d4f556e9e3d56c0ff9e69dc0d1811 /kernel/devices | |
| parent | 52a007ebee4e8ca284ec5767de01c311e9f1860e (diff) | |
| download | teachos-a8ebcdb0d16fe224d8f05577ea367864cb2fa9c2.tar.xz teachos-a8ebcdb0d16fe224d8f05577ea367864cb2fa9c2.zip | |
fix build add test code to read a block from device
Diffstat (limited to 'kernel/devices')
| -rw-r--r-- | kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp | 2 | ||||
| -rw-r--r-- | kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp | 26 |
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, ¤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 * |
