diff options
| -rw-r--r-- | kernel/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | kernel/devices/CMakeLists.txt | 27 | ||||
| -rw-r--r-- | kernel/devices/include/devices/BlockDevice.hpp | 11 | ||||
| -rw-r--r-- | kernel/devices/include/devices/Device.hpp | 11 | ||||
| -rw-r--r-- | kernel/devices/include/devices/storage/RAMDisk/RAMDiskController.hpp | 11 | ||||
| -rw-r--r-- | kernel/devices/include/devices/storage/RAMDisk/RAMDiskDevice.hpp | 11 | ||||
| -rw-r--r-- | kernel/devices/include/devices/storage/StorageController.hpp | 11 | ||||
| -rw-r--r-- | kernel/devices/include/devices/storage/StorageManagement.hpp | 16 | ||||
| -rw-r--r-- | kernel/devices/src/BlockDevice.cpp | 6 | ||||
| -rw-r--r-- | kernel/devices/src/Device.cpp | 6 | ||||
| -rw-r--r-- | kernel/devices/src/storage/RAMDisk/RAMDiskController.cpp | 6 | ||||
| -rw-r--r-- | kernel/devices/src/storage/RAMDisk/RAMDiskDevice.cpp | 6 | ||||
| -rw-r--r-- | kernel/devices/src/storage/StorageController.cpp | 6 | ||||
| -rw-r--r-- | kernel/devices/src/storage/StorageManagement.cpp | 9 |
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 |
