diff options
| author | Lukas Oesch <lukasoesch20@gmail.com> | 2026-03-03 10:15:20 +0100 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-03-17 16:42:30 +0100 |
| commit | 52a007ebee4e8ca284ec5767de01c311e9f1860e (patch) | |
| tree | ca9ea7720562d04b8590e142e908f31030eee6a8 /kernel/devices/src/storage/RAMDisk | |
| parent | d2e9e3ee57918ddd4a1f81e70304dc15964555ff (diff) | |
| download | teachos-52a007ebee4e8ca284ec5767de01c311e9f1860e.tar.xz teachos-52a007ebee4e8ca284ec5767de01c311e9f1860e.zip | |
implement major and minor analog to the linux kernel
Diffstat (limited to 'kernel/devices/src/storage/RAMDisk')
| -rw-r--r-- | kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp | 11 | ||||
| -rw-r--r-- | kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp | 11 |
2 files changed, 20 insertions, 2 deletions
diff --git a/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp b/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp index ec2cb97..1f70e2d 100644 --- a/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp +++ b/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp @@ -21,6 +21,17 @@ namespace devices::storage::ram_disk auto ram_disk_controller::probe() -> void { + 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; + + // 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); }); } diff --git a/kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp b/kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp index 339e7fa..f33cf94 100644 --- a/kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp +++ b/kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp @@ -3,14 +3,21 @@ #include "kapi/boot_module/boot_module.hpp" #include "kapi/system.hpp" +#include "devices/BlockDevice.hpp" + #include <kstd/cstring> #include <cstddef> namespace devices::storage::ram_disk { - ram_disk_device::ram_disk_device(kapi::boot_modules::boot_module const & module) - : m_boot_module(module) + ram_disk_device::ram_disk_device() // TODO BA-FS26 remove when kstd::vector is available + : block_device(0, 0) + {} + + ram_disk_device::ram_disk_device(kapi::boot_modules::boot_module const & module, size_t major, size_t minor) + : block_device(major, minor) + , m_boot_module(module) {} auto ram_disk_device::read_block(size_t block_index, void * buffer) const -> void |
