diff options
Diffstat (limited to 'kernel/devices/include')
3 files changed, 10 insertions, 6 deletions
diff --git a/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp index 6213ed4..bb61bbc 100644 --- a/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp +++ b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp @@ -17,13 +17,14 @@ namespace devices::storage::ram_disk 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 + std::array<ram_disk_device, 1> m_devices{}; // TODO BA-FS26 use kstd::vector when available }; } // namespace devices::storage::ram_disk diff --git a/kernel/devices/include/devices/storage/StorageController.hpp b/kernel/devices/include/devices/storage/StorageController.hpp index 7904d07..68c6907 100644 --- a/kernel/devices/include/devices/storage/StorageController.hpp +++ b/kernel/devices/include/devices/storage/StorageController.hpp @@ -9,7 +9,11 @@ namespace devices::storage virtual ~storage_controller() = default; virtual auto probe() -> void = 0; + virtual auto devices_count() -> size_t = 0; + + // TODO BA-FS26 + // virtual auto get_device(size_t index) -> std::optional<block_device> = 0; }; } // namespace devices::storage diff --git a/kernel/devices/include/devices/storage/StorageManagement.hpp b/kernel/devices/include/devices/storage/StorageManagement.hpp index 9098312..c237245 100644 --- a/kernel/devices/include/devices/storage/StorageManagement.hpp +++ b/kernel/devices/include/devices/storage/StorageManagement.hpp @@ -8,22 +8,21 @@ namespace devices::storage { + // TODO BA-FS26 add documentation struct storage_management { - // TODO BA-FS26 add documentation - auto static init() -> void; + auto static get() -> storage_management &; auto add_controller(storage_controller * controller) -> void; - auto add_device(block_device * device) -> void; private: storage_management() = default; - std::array<storage_controller *, 1> m_controllers{}; // TODO BA-FS26 use kstd::vector - std::array<block_device *, 1> m_devices{}; // TODO BA-FS26 use kstd::vector + std::array<storage_controller *, 1> m_controllers{}; // TODO BA-FS26 use kstd::vector when available + std::array<block_device *, 1> m_devices{}; // TODO BA-FS26 use kstd::vector when available }; } // namespace devices::storage |
