aboutsummaryrefslogtreecommitdiff
path: root/kernel/devices/include
diff options
context:
space:
mode:
authormarcel.braun <marcel.braun@ost.ch>2026-02-28 17:03:03 +0100
committerLukas Oesch <lukasoesch20@gmail.com>2026-03-17 16:42:17 +0100
commit2d52fae22143ec94c3741e60fd74374f9675e742 (patch)
tree3f159c27304f6c661e80d95b80c3a7a8da7056f2 /kernel/devices/include
parent7a9bdbc58361ff22491785d778474571035ad697 (diff)
downloadteachos-2d52fae22143ec94c3741e60fd74374f9675e742.tar.xz
teachos-2d52fae22143ec94c3741e60fd74374f9675e742.zip
Implement RAMDiskController and instantiate it in StorageManagement
Diffstat (limited to 'kernel/devices/include')
-rw-r--r--kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp21
-rw-r--r--kernel/devices/include/devices/storage/StorageController.hpp5
2 files changed, 25 insertions, 1 deletions
diff --git a/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp
index 3fcb645..6213ed4 100644
--- a/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp
+++ b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp
@@ -1,10 +1,29 @@
#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_RAM_DISK_CONTROLLER_HPP
#define TEACH_OS_KERNEL_DEVICES_STORAGE_RAM_DISK_CONTROLLER_HPP
+#include "kapi/boot_module/boot_module.hpp"
+#include "kapi/boot_module/boot_module_registry.hpp"
+
+#include "devices/storage/RAMDisk/RAMDiskDevice.hpp"
+#include "devices/storage/StorageController.hpp"
+
+#include <array>
+#include <cstddef>
+
namespace devices::storage::ram_disk
{
- struct ram_disk_controller
+ struct ram_disk_controller : storage_controller
{
+ explicit ram_disk_controller(kapi::boot_modules::boot_module_registry const * registry);
+
+ auto probe() -> void override;
+ auto devices_count() -> size_t 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
};
} // namespace devices::storage::ram_disk
diff --git a/kernel/devices/include/devices/storage/StorageController.hpp b/kernel/devices/include/devices/storage/StorageController.hpp
index 3167be0..7904d07 100644
--- a/kernel/devices/include/devices/storage/StorageController.hpp
+++ b/kernel/devices/include/devices/storage/StorageController.hpp
@@ -1,10 +1,15 @@
#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_CONTROLLER_HPP
#define TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_CONTROLLER_HPP
+#include <cstddef>
namespace devices::storage
{
struct storage_controller
{
+ virtual ~storage_controller() = default;
+
+ virtual auto probe() -> void = 0;
+ virtual auto devices_count() -> size_t = 0;
};
} // namespace devices::storage