aboutsummaryrefslogtreecommitdiff
path: root/kernel/devices/include
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/devices/include')
-rw-r--r--kernel/devices/include/devices/storage/ram_disk/ram_disk_controller.hpp21
-rw-r--r--kernel/devices/include/devices/storage/storage_controller.hpp7
-rw-r--r--kernel/devices/include/devices/storage/storage_management.hpp10
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:
/**