diff options
| author | Lukas Oesch <lukasoesch20@gmail.com> | 2026-03-15 16:49:07 +0100 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-03-17 16:43:07 +0100 |
| commit | 2af1bbc99e2a8fc4b86bb31023dbbb077b1cbc97 (patch) | |
| tree | 9946202a366b39893dede294d51e6b684ab730ba /kernel/devices/include | |
| parent | 8eed4d31cf1d07d43e99d53da0fe3a401ce9e85e (diff) | |
| download | teachos-2af1bbc99e2a8fc4b86bb31023dbbb077b1cbc97.tar.xz teachos-2af1bbc99e2a8fc4b86bb31023dbbb077b1cbc97.zip | |
move m_devices from ram_disk_controller to storage_controller, store point to devices
Diffstat (limited to 'kernel/devices/include')
3 files changed, 10 insertions, 28 deletions
diff --git a/kernel/devices/include/devices/storage/ram_disk/ram_disk_controller.hpp b/kernel/devices/include/devices/storage/ram_disk/ram_disk_controller.hpp index 424082d..f69f8d8 100644 --- a/kernel/devices/include/devices/storage/ram_disk/ram_disk_controller.hpp +++ b/kernel/devices/include/devices/storage/ram_disk/ram_disk_controller.hpp @@ -3,13 +3,8 @@ #include "kapi/boot_module/boot_module_registry.hpp" -#include "devices/block_device.hpp" -#include "devices/storage/ram_disk/ram_disk_device.hpp" #include "devices/storage/storage_controller.hpp" -#include <array> -#include <cstddef> - namespace devices::storage::ram_disk { /** @@ -28,24 +23,8 @@ namespace devices::storage::ram_disk */ auto probe() -> void override; - /** - * @brief Return the number of managed RAM-disk devices. - * @return Number of managed devices. - */ - auto devices_count() -> size_t override; - - /** - * @brief Look up a RAM-disk device by major/minor numbers. - * @param major Device major number. - * @param minor Device minor number. - * @return Matching block device, or nullptr if no device matches. - */ - auto device_by_minor(size_t minor) -> block_device * override; - private: 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 }; } // namespace devices::storage::ram_disk diff --git a/kernel/devices/include/devices/storage/storage_controller.hpp b/kernel/devices/include/devices/storage/storage_controller.hpp index 0c7cf83..697d3c3 100644 --- a/kernel/devices/include/devices/storage/storage_controller.hpp +++ b/kernel/devices/include/devices/storage/storage_controller.hpp @@ -2,7 +2,9 @@ #define TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_CONTROLLER_HPP #include "devices/block_device.hpp" +#include "devices/device.hpp" +#include <array> #include <cstddef> namespace devices::storage @@ -42,7 +44,7 @@ namespace devices::storage * @brief Return the number of devices managed by this controller. * @return Number of managed devices. */ - virtual auto devices_count() -> size_t = 0; + auto devices_count() -> size_t; /** * @brief Find a managed device by major/minor numbers. @@ -50,11 +52,12 @@ namespace devices::storage * @param minor Device minor number. * @return Matching block device, or nullptr if no device matches. */ - virtual auto device_by_minor(size_t minor) -> block_device * = 0; + auto device_by_minor(size_t minor) -> device *; protected: size_t m_major{}; size_t m_minors_per_device{}; + std::array<devices::device *, 1> m_devices{}; // TODO BA-FS26 use kstd::vector when available }; } // namespace devices::storage diff --git a/kernel/devices/include/devices/storage/storage_management.hpp b/kernel/devices/include/devices/storage/storage_management.hpp index 2bed459..6ca8db7 100644 --- a/kernel/devices/include/devices/storage/storage_management.hpp +++ b/kernel/devices/include/devices/storage/storage_management.hpp @@ -1,7 +1,7 @@ #ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_MANAGEMENT_HPP #define TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_MANAGEMENT_HPP -#include "devices/block_device.hpp" +#include "devices/device.hpp" #include "devices/storage/storage_controller.hpp" #include <array> @@ -43,18 +43,18 @@ namespace devices::storage auto add_controller(storage_controller * controller) -> void; /** - * @brief Find a block device by major/minor numbers. + * @brief Find a device by major/minor numbers. * @param major Device major number. * @param minor Device minor number. - * @return Matching block device, or nullptr if no device matches. + * @return Matching device, or nullptr if no device matches. */ - auto device_by_major_minor(size_t major, size_t minor) -> block_device *; + auto device_by_major_minor(size_t major, size_t minor) -> device *; /** * @brief Determine the boot device. * @return Boot device, or nullptr if it cannot be determined. */ - auto determine_boot_device() -> block_device *; + auto determine_boot_device() -> device *; private: /** |
