diff options
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: /** |
