aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/CMakeLists.txt3
-rw-r--r--kernel/devices/CMakeLists.txt27
-rw-r--r--kernel/devices/include/devices/BlockDevice.hpp11
-rw-r--r--kernel/devices/include/devices/Device.hpp11
-rw-r--r--kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp11
-rw-r--r--kernel/devices/include/devices/storage/RAMDisk/RAMDiskDevice.hpp11
-rw-r--r--kernel/devices/include/devices/storage/StorageController.hpp11
-rw-r--r--kernel/devices/include/devices/storage/StorageManagement.hpp16
-rw-r--r--kernel/devices/src/BlockDevice.cpp6
-rw-r--r--kernel/devices/src/Device.cpp6
-rw-r--r--kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp6
-rw-r--r--kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp6
-rw-r--r--kernel/devices/src/storage/StorageController.cpp6
-rw-r--r--kernel/devices/src/storage/StorageManagement.cpp9
14 files changed, 140 insertions, 0 deletions
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt
index b7b7c71..c3c9698 100644
--- a/kernel/CMakeLists.txt
+++ b/kernel/CMakeLists.txt
@@ -1,3 +1,5 @@
+add_subdirectory("devices")
+
add_executable("kernel"
# Platform-independent KAPI implementation
"kapi/boot_modules.cpp"
@@ -24,6 +26,7 @@ target_include_directories("kernel" PRIVATE
target_link_libraries("kernel" PRIVATE
"os::arch"
"os::kapi"
+ "kernel::devices"
)
target_link_options("kernel" PRIVATE
diff --git a/kernel/devices/CMakeLists.txt b/kernel/devices/CMakeLists.txt
new file mode 100644
index 0000000..80b89bf
--- /dev/null
+++ b/kernel/devices/CMakeLists.txt
@@ -0,0 +1,27 @@
+add_library("kernel_devices" STATIC)
+add_library("kernel::devices" ALIAS "kernel_devices")
+
+target_sources("kernel_devices" PRIVATE
+ "src/Device.cpp"
+ "src/BlockDevice.cpp"
+ "src/storage/StorageController.cpp"
+ "src/storage/StorageManagement.cpp"
+ "src/storage/RAMDisk/RAMDiskController.cpp"
+ "src/storage/RAMDisk/RAMDiskDevice.cpp"
+)
+
+target_sources("kernel_devices" PUBLIC
+ FILE_SET HEADERS
+ BASE_DIRS "include"
+ FILES
+ "include/devices/Device.hpp"
+ "include/devices/BlockDevice.hpp"
+ "include/devices/storage/StorageController.hpp"
+ "include/devices/storage/StorageManagement.hpp"
+ "include/devices/storage/RAMDisk/RAMDiskController.hpp"
+ "include/devices/storage/RAMDisk/RAMDiskDevice.hpp"
+)
+
+target_include_directories("kernel_devices" PUBLIC
+ "include"
+) \ No newline at end of file
diff --git a/kernel/devices/include/devices/BlockDevice.hpp b/kernel/devices/include/devices/BlockDevice.hpp
new file mode 100644
index 0000000..db66683
--- /dev/null
+++ b/kernel/devices/include/devices/BlockDevice.hpp
@@ -0,0 +1,11 @@
+#ifndef TEACH_OS_KERNEL_DEVICES_BLOCK_DEVICE_HPP
+#define TEACH_OS_KERNEL_DEVICES_BLOCK_DEVICE_HPP
+
+namespace devices
+{
+ struct block_device
+ {
+ };
+} // namespace devices
+
+#endif \ No newline at end of file
diff --git a/kernel/devices/include/devices/Device.hpp b/kernel/devices/include/devices/Device.hpp
new file mode 100644
index 0000000..a3cac42
--- /dev/null
+++ b/kernel/devices/include/devices/Device.hpp
@@ -0,0 +1,11 @@
+#ifndef TEACH_OS_KERNEL_DEVICES_DEVICE_HPP
+#define TEACH_OS_KERNEL_DEVICES_DEVICE_HPP
+
+namespace devices
+{
+ struct device
+ {
+ };
+} // namespace devices
+
+#endif \ No newline at end of file
diff --git a/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp
new file mode 100644
index 0000000..3fcb645
--- /dev/null
+++ b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp
@@ -0,0 +1,11 @@
+#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_RAM_DISK_CONTROLLER_HPP
+#define TEACH_OS_KERNEL_DEVICES_STORAGE_RAM_DISK_CONTROLLER_HPP
+
+namespace devices::storage::ram_disk
+{
+ struct ram_disk_controller
+ {
+ };
+} // namespace devices::storage::ram_disk
+
+#endif \ No newline at end of file
diff --git a/kernel/devices/include/devices/storage/RAMDisk/RAMDiskDevice.hpp b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskDevice.hpp
new file mode 100644
index 0000000..98471cf
--- /dev/null
+++ b/kernel/devices/include/devices/storage/RAMDisk/RAMDiskDevice.hpp
@@ -0,0 +1,11 @@
+#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_RAM_DISK_DEVICE_HPP
+#define TEACH_OS_KERNEL_DEVICES_STORAGE_RAM_DISK_DEVICE_HPP
+
+namespace devices::storage::ram_disk
+{
+ struct ram_disk_device
+ {
+ };
+} // namespace devices::storage::ram_disk
+
+#endif \ No newline at end of file
diff --git a/kernel/devices/include/devices/storage/StorageController.hpp b/kernel/devices/include/devices/storage/StorageController.hpp
new file mode 100644
index 0000000..3167be0
--- /dev/null
+++ b/kernel/devices/include/devices/storage/StorageController.hpp
@@ -0,0 +1,11 @@
+#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_CONTROLLER_HPP
+#define TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_CONTROLLER_HPP
+
+namespace devices::storage
+{
+ struct storage_controller
+ {
+ };
+} // namespace devices::storage
+
+#endif \ No newline at end of file
diff --git a/kernel/devices/include/devices/storage/StorageManagement.hpp b/kernel/devices/include/devices/storage/StorageManagement.hpp
new file mode 100644
index 0000000..2b2eb22
--- /dev/null
+++ b/kernel/devices/include/devices/storage/StorageManagement.hpp
@@ -0,0 +1,16 @@
+#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_MANAGEMENT_HPP
+#define TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_MANAGEMENT_HPP
+
+namespace devices::storage
+{
+ struct storage_management
+ {
+ //! @qualifier kernel-defined
+ //! Initialize the storage management subsystem.
+ auto init() -> void;
+
+ private:
+ };
+} // namespace devices::storage
+
+#endif \ No newline at end of file
diff --git a/kernel/devices/src/BlockDevice.cpp b/kernel/devices/src/BlockDevice.cpp
new file mode 100644
index 0000000..970f7b2
--- /dev/null
+++ b/kernel/devices/src/BlockDevice.cpp
@@ -0,0 +1,6 @@
+#include "devices/BlockDevice.hpp"
+
+namespace devices
+{
+ // TODO BA-FS26 implement block device functionality
+} // namespace devices \ No newline at end of file
diff --git a/kernel/devices/src/Device.cpp b/kernel/devices/src/Device.cpp
new file mode 100644
index 0000000..d755fb9
--- /dev/null
+++ b/kernel/devices/src/Device.cpp
@@ -0,0 +1,6 @@
+#include "devices/Device.hpp"
+
+namespace devices
+{
+ // TODO BA-FS26 implement device functionality
+} // namespace devices \ No newline at end of file
diff --git a/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp b/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp
new file mode 100644
index 0000000..9c6427d
--- /dev/null
+++ b/kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp
@@ -0,0 +1,6 @@
+#include "devices/storage/RAMDisk/RAMDiskController.hpp"
+
+namespace devices::storage::ram_disk
+{
+ // TODO BA-FS26 implement ram disk controller functionality
+} // namespace devices::storage::ram_disk \ No newline at end of file
diff --git a/kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp b/kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp
new file mode 100644
index 0000000..8d8f51e
--- /dev/null
+++ b/kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp
@@ -0,0 +1,6 @@
+#include "devices/storage/RAMDisk/RAMDiskDevice.hpp"
+
+namespace devices::storage::ram_disk
+{
+ // TODO BA-FS26 implement ram disk device functionality
+} // namespace devices::storage::ram_disk \ No newline at end of file
diff --git a/kernel/devices/src/storage/StorageController.cpp b/kernel/devices/src/storage/StorageController.cpp
new file mode 100644
index 0000000..fe386cf
--- /dev/null
+++ b/kernel/devices/src/storage/StorageController.cpp
@@ -0,0 +1,6 @@
+#include "devices/storage/StorageController.hpp"
+
+namespace devices::storage
+{
+ // TODO BA-FS26 implement storage controller functionality
+} // namespace devices::storage \ No newline at end of file
diff --git a/kernel/devices/src/storage/StorageManagement.cpp b/kernel/devices/src/storage/StorageManagement.cpp
new file mode 100644
index 0000000..f34fa15
--- /dev/null
+++ b/kernel/devices/src/storage/StorageManagement.cpp
@@ -0,0 +1,9 @@
+#include "devices/storage/StorageManagement.hpp"
+
+namespace devices::storage
+{
+ auto storage_management::init() -> void
+ {
+ // TODO BA-FS26 implement storage management initialization
+ }
+} // namespace devices::storage \ No newline at end of file