aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/devices/storage
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-03-31 08:56:17 +0200
committerLukas Oesch <lukasoesch20@gmail.com>2026-03-31 08:56:17 +0200
commit9e85f9d1f34d08213a918d9c1b0845c179e323af (patch)
treed3694b22e1b41cbc3bfd340f8f9db47a6602ec73 /kernel/src/devices/storage
parentffac763323b88809d2f361bc01cdf9bfe0b1d67f (diff)
downloadteachos-9e85f9d1f34d08213a918d9c1b0845c179e323af.tar.xz
teachos-9e85f9d1f34d08213a918d9c1b0845c179e323af.zip
move device into kapi
Diffstat (limited to 'kernel/src/devices/storage')
-rw-r--r--kernel/src/devices/storage/controller.cpp6
-rw-r--r--kernel/src/devices/storage/management.cpp8
-rw-r--r--kernel/src/devices/storage/ram_disk/device.cpp8
3 files changed, 14 insertions, 8 deletions
diff --git a/kernel/src/devices/storage/controller.cpp b/kernel/src/devices/storage/controller.cpp
index 46c45e4..1bef670 100644
--- a/kernel/src/devices/storage/controller.cpp
+++ b/kernel/src/devices/storage/controller.cpp
@@ -1,6 +1,6 @@
#include "kernel/devices/storage/controller.hpp"
-#include "kernel/devices/device.hpp"
+#include "kapi/devices/device.hpp"
#include <kstd/memory>
#include <kstd/vector>
@@ -21,7 +21,7 @@ namespace kernel::devices::storage
return m_major;
}
- auto controller::device_by_minor(size_t minor) const -> kstd::shared_ptr<devices::device>
+ auto controller::device_by_minor(size_t minor) const -> kstd::shared_ptr<kapi::devices::device>
{
auto it = std::ranges::find_if(m_devices, [minor](auto const & device) { return device->minor() == minor; });
@@ -37,7 +37,7 @@ namespace kernel::devices::storage
return m_devices.size();
}
- auto controller::all_devices() const -> kstd::vector<kstd::shared_ptr<devices::device>> const &
+ auto controller::all_devices() const -> kstd::vector<kstd::shared_ptr<kapi::devices::device>> const &
{
return m_devices;
}
diff --git a/kernel/src/devices/storage/management.cpp b/kernel/src/devices/storage/management.cpp
index 62c0ce4..d440bf0 100644
--- a/kernel/src/devices/storage/management.cpp
+++ b/kernel/src/devices/storage/management.cpp
@@ -3,7 +3,7 @@
#include "kapi/boot_modules.hpp"
#include "kapi/system.hpp"
-#include "kernel/devices/device.hpp"
+#include "kapi/devices/device.hpp"
#include "kernel/devices/storage/controller.hpp"
#include "kernel/devices/storage/ram_disk/controller.hpp"
@@ -61,9 +61,9 @@ namespace kernel::devices::storage
return m_controllers;
}
- auto management::device_by_major_minor(size_t major, size_t minor) -> kstd::shared_ptr<device>
+ auto management::device_by_major_minor(size_t major, size_t minor) -> kstd::shared_ptr<kapi::devices::device>
{
- kstd::shared_ptr<device> found = nullptr;
+ kstd::shared_ptr<kapi::devices::device> found = nullptr;
std::ranges::find_if(m_controllers, [&](auto const & controller) {
if (controller != nullptr && controller->major() == major)
@@ -77,7 +77,7 @@ namespace kernel::devices::storage
return found;
}
- auto management::determine_boot_device() -> kstd::shared_ptr<device>
+ auto management::determine_boot_device() -> kstd::shared_ptr<kapi::devices::device>
{
return device_by_major_minor(START_MAJOR, 0);
}
diff --git a/kernel/src/devices/storage/ram_disk/device.cpp b/kernel/src/devices/storage/ram_disk/device.cpp
index 5116c93..8fc3b2a 100644
--- a/kernel/src/devices/storage/ram_disk/device.cpp
+++ b/kernel/src/devices/storage/ram_disk/device.cpp
@@ -1,8 +1,9 @@
+#include "kernel/devices/storage/ram_disk/device.hpp"
+
#include "kapi/boot_module/boot_module.hpp"
#include "kapi/system.hpp"
#include "kernel/devices/block_device.hpp"
-#include "kernel/devices/storage/ram_disk/device.hpp"
#include <kstd/cstring>
#include <kstd/string>
@@ -21,6 +22,11 @@ namespace kernel::devices::storage::ram_disk
, m_boot_module(module)
{}
+ auto device::init() -> bool
+ {
+ return m_boot_module.start_address.raw() != 0 && m_boot_module.size > 0;
+ }
+
auto device::read_block(size_t block_index, void * buffer) const -> void
{
if (buffer == nullptr)