diff options
| author | Lukas Oesch <lukas.oesch@ost.ch> | 2026-03-30 21:37:09 +0200 |
|---|---|---|
| committer | Lukas Oesch <lukas.oesch@ost.ch> | 2026-03-30 21:37:09 +0200 |
| commit | ffac763323b88809d2f361bc01cdf9bfe0b1d67f (patch) | |
| tree | 2ec969f3ae4008d0ea8d81efacd5bb810a03d96c | |
| parent | 9058bbed061602cdf41013d5e5d91ce892f63c94 (diff) | |
| parent | 846135ba5cdfa545124b97c74182f5eada9a403a (diff) | |
| download | teachos-ffac763323b88809d2f361bc01cdf9bfe0b1d67f.tar.xz teachos-ffac763323b88809d2f361bc01cdf9bfe0b1d67f.zip | |
Merge branch 'refactor' into 'develop-BA-FS26'
Refactor
See merge request teachos/kernel!18
59 files changed, 437 insertions, 439 deletions
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt index 5cc6f2d..10bfecb 100644 --- a/kernel/CMakeLists.txt +++ b/kernel/CMakeLists.txt @@ -20,14 +20,14 @@ add_executable("kernel" "src/devices/device.cpp" "src/devices/block_device.cpp" "src/devices/block_device_utils.cpp" - "src/devices/storage/storage_controller.cpp" - "src/devices/storage/storage_management.cpp" - "src/devices/storage/ram_disk/ram_disk_controller.cpp" - "src/devices/storage/ram_disk/ram_disk_device.cpp" - "src/filesystem/devfs/devfs_filesystem.cpp" - "src/filesystem/devfs/devfs_root_inode.cpp" - "src/filesystem/ext2/ext2_filesystem.cpp" - "src/filesystem/ext2/ext2_inode.cpp" + "src/devices/storage/controller.cpp" + "src/devices/storage/management.cpp" + "src/devices/storage/ram_disk/controller.cpp" + "src/devices/storage/ram_disk/device.cpp" + "src/filesystem/devfs/filesystem.cpp" + "src/filesystem/devfs/inode.cpp" + "src/filesystem/ext2/filesystem.cpp" + "src/filesystem/ext2/inode.cpp" "src/filesystem/dentry.cpp" "src/filesystem/device_inode.cpp" "src/filesystem/file_descriptor_table.cpp" @@ -36,8 +36,8 @@ add_executable("kernel" "src/filesystem/mount_table.cpp" "src/filesystem/mount.cpp" "src/filesystem/open_file_description.cpp" - "src/filesystem/rootfs/rootfs_filesystem.cpp" - "src/filesystem/rootfs/rootfs_inode.cpp" + "src/filesystem/rootfs/filesystem.cpp" + "src/filesystem/rootfs/inode.cpp" "src/filesystem/vfs.cpp" ) diff --git a/kernel/include/kernel/devices/block_device.hpp b/kernel/include/kernel/devices/block_device.hpp index e2026dd..619b815 100644 --- a/kernel/include/kernel/devices/block_device.hpp +++ b/kernel/include/kernel/devices/block_device.hpp @@ -7,7 +7,7 @@ #include <cstddef> -namespace devices +namespace kernel::devices { /** * @brief Base interface for block-addressable devices. @@ -92,6 +92,6 @@ namespace devices size_t m_block_size; }; -} // namespace devices +} // namespace kernel::devices #endif
\ No newline at end of file diff --git a/kernel/include/kernel/devices/block_device_utils.hpp b/kernel/include/kernel/devices/block_device_utils.hpp index 5ec69d1..bb49d04 100644 --- a/kernel/include/kernel/devices/block_device_utils.hpp +++ b/kernel/include/kernel/devices/block_device_utils.hpp @@ -7,11 +7,11 @@ #include <cstddef> -namespace devices::block_device_utils +namespace kernel::devices::block_device_utils { auto read(kstd::shared_ptr<devices::device> const & device, void * buffer, size_t offset, size_t size) -> size_t; auto write(kstd::shared_ptr<devices::device> const & device, void const * buffer, size_t offset, size_t size) -> size_t; -} // namespace devices::block_device_utils +} // namespace kernel::devices::block_device_utils #endif
\ No newline at end of file diff --git a/kernel/include/kernel/devices/device.hpp b/kernel/include/kernel/devices/device.hpp index 66cb7f8..67fa5ad 100644 --- a/kernel/include/kernel/devices/device.hpp +++ b/kernel/include/kernel/devices/device.hpp @@ -5,7 +5,7 @@ #include <cstddef> -namespace devices +namespace kernel::devices { /** * @brief Base device identified by a major, minor number and name. @@ -57,6 +57,6 @@ namespace devices size_t m_minor; kstd::string m_name; }; -} // namespace devices +} // namespace kernel::devices #endif
\ No newline at end of file diff --git a/kernel/include/kernel/devices/storage/storage_controller.hpp b/kernel/include/kernel/devices/storage/controller.hpp index 58585fa..e3bfd01 100644 --- a/kernel/include/kernel/devices/storage/storage_controller.hpp +++ b/kernel/include/kernel/devices/storage/controller.hpp @@ -1,5 +1,5 @@ -#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_CONTROLLER_HPP -#define TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_CONTROLLER_HPP +#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_CONTROLLER_HPP +#define TEACH_OS_KERNEL_DEVICES_STORAGE_CONTROLLER_HPP #include "kernel/devices/device.hpp" @@ -8,7 +8,7 @@ #include <cstddef> -namespace devices::storage +namespace kernel::devices::storage { /** * @brief Base interface for storage controllers. @@ -16,12 +16,12 @@ namespace devices::storage * A storage controller probes for devices and resolves devices by major/minor * numbers. */ - struct storage_controller + struct controller { /** * @brief Virtual destructor. */ - virtual ~storage_controller() = default; + virtual ~controller() = default; /** * @brief Probe the controller and register discovered devices. @@ -66,6 +66,6 @@ namespace devices::storage size_t m_minors_per_device{}; kstd::vector<kstd::shared_ptr<devices::device>> m_devices{}; }; -} // namespace devices::storage +} // namespace kernel::devices::storage #endif
\ No newline at end of file diff --git a/kernel/include/kernel/devices/storage/storage_management.hpp b/kernel/include/kernel/devices/storage/management.hpp index 413820e..255d170 100644 --- a/kernel/include/kernel/devices/storage/storage_management.hpp +++ b/kernel/include/kernel/devices/storage/management.hpp @@ -1,15 +1,15 @@ -#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_MANAGEMENT_HPP -#define TEACH_OS_KERNEL_DEVICES_STORAGE_STORAGE_MANAGEMENT_HPP +#ifndef TEACH_OS_KERNEL_DEVICES_STORAGE_MANAGEMENT_HPP +#define TEACH_OS_KERNEL_DEVICES_STORAGE_MANAGEMENT_HPP #include "kernel/devices/device.hpp" -#include "kernel/devices/storage/storage_controller.hpp" +#include "kernel/devices/storage/controller.hpp" #include <kstd/memory> #include <kstd/vector> #include <cstddef> -namespace devices::storage +namespace kernel::devices::storage { /** * @brief Global storage subsystem manager. @@ -17,7 +17,7 @@ namespace devices::storage * Owns registered storage controllers and provides device lookup by * major/minor numbers. */ - struct storage_management + struct management { /** * @brief Initialize global storage management. @@ -34,7 +34,7 @@ namespace devices::storage * @return Reference to the active storage manager. * @warning Panics if storage management has not been initialized. */ - auto static get() -> storage_management &; + auto static get() -> management &; /** * @brief Register a storage controller. @@ -42,13 +42,13 @@ namespace devices::storage * * Assigns controller IDs (major number range and minors per device). */ - auto add_controller(kstd::shared_ptr<storage_controller> const & controller) -> void; + auto add_controller(kstd::shared_ptr<controller> const & controller) -> void; /** * @brief Return all registered storage controllers. * @return Vector of all registered storage controllers. */ - [[nodiscard]] auto all_controllers() const -> kstd::vector<kstd::shared_ptr<storage_controller>> const &; + [[nodiscard]] auto all_controllers() const -> kstd::vector<kstd::shared_ptr<controller>> const &; /** * @brief Find a device by major/minor numbers. @@ -68,10 +68,10 @@ namespace devices::storage /** * @brief Private default constructor for storage management singleton. */ - storage_management() = default; + management() = default; - kstd::vector<kstd::shared_ptr<storage_controller>> m_controllers{}; + kstd::vector<kstd::shared_ptr<controller>> m_controllers{}; }; -} // namespace devices::storage +} // namespace kernel::devices::storage #endif
\ No newline at end of file diff --git a/kernel/include/kernel/devices/storage/ram_disk/ram_disk_controller.hpp b/kernel/include/kernel/devices/storage/ram_disk/controller.hpp index 6f022e3..ad8b29f 100644 --- a/kernel/include/kernel/devices/storage/ram_disk/ram_disk_controller.hpp +++ b/kernel/include/kernel/devices/storage/ram_disk/controller.hpp @@ -3,20 +3,20 @@ #include "kapi/boot_module/boot_module_registry.hpp" -#include "kernel/devices/storage/storage_controller.hpp" +#include "kernel/devices/storage/controller.hpp" -namespace devices::storage::ram_disk +namespace kernel::devices::storage::ram_disk { /** * @brief Storage controller that exposes boot modules as RAM-disk devices. */ - struct ram_disk_controller : storage_controller + struct controller : kernel::devices::storage::controller { /** * @brief Create a RAM-disk controller. * @param registry Boot module registry as device source. */ - explicit ram_disk_controller(kapi::boot_modules::boot_module_registry const * registry); + explicit controller(kapi::boot_modules::boot_module_registry const * registry); /** * @brief Probe boot modules and create RAM-disk devices. @@ -26,6 +26,6 @@ namespace devices::storage::ram_disk private: kapi::boot_modules::boot_module_registry const * m_boot_module_registry; }; -} // namespace devices::storage::ram_disk +} // namespace kernel::devices::storage::ram_disk #endif
\ No newline at end of file diff --git a/kernel/include/kernel/devices/storage/ram_disk/ram_disk_device.hpp b/kernel/include/kernel/devices/storage/ram_disk/device.hpp index c323f4b..0777e86 100644 --- a/kernel/include/kernel/devices/storage/ram_disk/ram_disk_device.hpp +++ b/kernel/include/kernel/devices/storage/ram_disk/device.hpp @@ -7,12 +7,12 @@ #include <cstddef> -namespace devices::storage::ram_disk +namespace kernel::devices::storage::ram_disk { /** * @brief Block device for a boot module. */ - struct ram_disk_device : block_device + struct device : block_device { /** * @brief Create a RAM disk for the @p module. @@ -20,7 +20,7 @@ namespace devices::storage::ram_disk * @param major Device major number. * @param minor Device minor number. */ - ram_disk_device(kapi::boot_modules::boot_module const & module, size_t major, size_t minor); + device(kapi::boot_modules::boot_module const & module, size_t major, size_t minor); /** * @brief Read one logical block into @p buffer. @@ -47,6 +47,6 @@ namespace devices::storage::ram_disk kapi::boot_modules::boot_module m_boot_module{}; }; -} // namespace devices::storage::ram_disk +} // namespace kernel::devices::storage::ram_disk #endif
\ No newline at end of file diff --git a/kernel/include/kernel/filesystem/dentry.hpp b/kernel/include/kernel/filesystem/dentry.hpp index c28246f..fc85a7d 100644 --- a/kernel/include/kernel/filesystem/dentry.hpp +++ b/kernel/include/kernel/filesystem/dentry.hpp @@ -10,7 +10,7 @@ #include <cstdint> #include <string_view> -namespace filesystem +namespace kernel::filesystem { struct dentry { @@ -38,6 +38,6 @@ namespace filesystem kstd::shared_ptr<inode> m_inode; uint32_t m_flags{0}; }; -} // namespace filesystem +} // namespace kernel::filesystem #endif
\ No newline at end of file diff --git a/kernel/include/kernel/filesystem/devfs/devfs_filesystem.hpp b/kernel/include/kernel/filesystem/devfs/devfs_filesystem.hpp deleted file mode 100644 index 5559c2a..0000000 --- a/kernel/include/kernel/filesystem/devfs/devfs_filesystem.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef TEACH_OS_KERNEL_FILESYSTEM_DEVFS_DEVFS_FILESYSTEM_HPP -#define TEACH_OS_KERNEL_FILESYSTEM_DEVFS_DEVFS_FILESYSTEM_HPP - -#include "kernel/devices/device.hpp" -#include "kernel/filesystem/filesystem.hpp" -#include "kernel/filesystem/inode.hpp" - -#include <kstd/memory> -#include <kstd/vector> - -#include <string_view> - -namespace filesystem::devfs -{ - struct devfs_filesystem : filesystem - { - auto mount(kstd::shared_ptr<devices::device> const & device) -> int override; - auto lookup(kstd::shared_ptr<inode> const & parent, std::string_view name) -> kstd::shared_ptr<inode> override; - - private: - auto build_device_inode_table() -> void; - }; -} // namespace filesystem::devfs - -#endif
\ No newline at end of file diff --git a/kernel/include/kernel/filesystem/devfs/devfs_root_inode.hpp b/kernel/include/kernel/filesystem/devfs/devfs_root_inode.hpp deleted file mode 100644 index b1d37ab..0000000 --- a/kernel/include/kernel/filesystem/devfs/devfs_root_inode.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef TEACH_OS_KERNEL_FILESYSTEM_DEVFS_DEVFS_ROOT_INODE_HPP -#define TEACH_OS_KERNEL_FILESYSTEM_DEVFS_DEVFS_ROOT_INODE_HPP - -#include "kernel/filesystem/inode.hpp" - -#include <cstddef> - -namespace filesystem::devfs -{ - struct devfs_root_inode : inode - { - devfs_root_inode(); - - auto read(void * buffer, size_t offset, size_t size) const -> size_t override; - auto write(void const * buffer, size_t offset, size_t size) -> size_t override; - }; -} // namespace filesystem::devfs - -#endif
\ No newline at end of file diff --git a/kernel/include/kernel/filesystem/devfs/filesystem.hpp b/kernel/include/kernel/filesystem/devfs/filesystem.hpp new file mode 100644 index 0000000..5ec6221 --- /dev/null +++ b/kernel/include/kernel/filesystem/devfs/filesystem.hpp @@ -0,0 +1,26 @@ +#ifndef TEACH_OS_KERNEL_FILESYSTEM_DEVFS_FILESYSTEM_HPP +#define TEACH_OS_KERNEL_FILESYSTEM_DEVFS_FILESYSTEM_HPP + +#include "kernel/devices/device.hpp" +#include "kernel/filesystem/filesystem.hpp" +#include "kernel/filesystem/inode.hpp" + +#include <kstd/memory> +#include <kstd/vector> + +#include <string_view> + +namespace kernel::filesystem::devfs +{ + struct filesystem : kernel::filesystem::filesystem + { + auto mount(kstd::shared_ptr<devices::device> const & device) -> int override; + auto lookup(kstd::shared_ptr<kernel::filesystem::inode> const & parent, std::string_view name) + -> kstd::shared_ptr<kernel::filesystem::inode> override; + + private: + auto build_device_inode_table() -> void; + }; +} // namespace kernel::filesystem::devfs + +#endif
\ No newline at end of file diff --git a/kernel/include/kernel/filesystem/devfs/inode.hpp b/kernel/include/kernel/filesystem/devfs/inode.hpp new file mode 100644 index 0000000..9c11edf --- /dev/null +++ b/kernel/include/kernel/filesystem/devfs/inode.hpp @@ -0,0 +1,19 @@ +#ifndef TEACH_OS_KERNEL_FILESYSTEM_DEVFS_INODE_HPP +#define TEACH_OS_KERNEL_FILESYSTEM_DEVFS_INODE_HPP + +#include "kernel/filesystem/inode.hpp" + +#include <cstddef> + +namespace kernel::filesystem::devfs +{ + struct inode : kernel::filesystem::inode + { + inode(); + + auto read(void * buffer, size_t offset, size_t size) const -> size_t override; + auto write(void const * buffer, size_t offset, size_t size) -> size_t override; + }; +} // namespace kernel::filesystem::devfs + +#endif
\ No newline at end of file diff --git a/kernel/include/kernel/filesystem/device_inode.hpp b/kernel/include/kernel/filesystem/device_inode.hpp index 0477969..7f044b0 100644 --- a/kernel/include/kernel/filesystem/device_inode.hpp +++ b/kernel/include/kernel/filesystem/device_inode.hpp @@ -8,7 +8,7 @@ #include <cstddef> -namespace filesystem +namespace kernel::filesystem { struct device_inode : inode { @@ -22,6 +22,6 @@ namespace filesystem private: kstd::shared_ptr<devices::device> m_device; }; -} // namespace filesystem +} // namespace kernel::filesystem #endif
\ No newline at end of file diff --git a/kernel/include/kernel/filesystem/ext2/ext2_block_group_descriptor.hpp b/kernel/include/kernel/filesystem/ext2/block_group_descriptor.hpp index b0966da..a23c045 100644 --- a/kernel/include/kernel/filesystem/ext2/ext2_block_group_descriptor.hpp +++ b/kernel/include/kernel/filesystem/ext2/block_group_descriptor.hpp @@ -1,12 +1,12 @@ -#ifndef EXT2_BLOCK_GROUP_DESCRIPTOR_HPP -#define EXT2_BLOCK_GROUP_DESCRIPTOR_HPP +#ifndef TEACH_OS_KERNEL_FILESYSTEM_EXT2_BLOCK_GROUP_DESCRIPTOR_HPP +#define TEACH_OS_KERNEL_FILESYSTEM_EXT2_BLOCK_GROUP_DESCRIPTOR_HPP #include <array> #include <cstdint> -namespace filesystem::ext2 +namespace kernel::filesystem::ext2 { - struct ext2_block_group_descriptor + struct block_group_descriptor { uint32_t block_bitmap; uint32_t inode_bitmap; @@ -17,5 +17,5 @@ namespace filesystem::ext2 std::array<uint8_t, 2> padding; std::array<uint8_t, 12> reserved; // NOLINT(readability-magic-numbers) }; -} // namespace filesystem::ext2 -#endif // EXT2_BLOCK_GROUP_DESCRIPTOR_HPP
\ No newline at end of file +} // namespace kernel::filesystem::ext2 +#endif
\ No newline at end of file diff --git a/kernel/include/kernel/filesystem/ext2/ext2_filesystem.hpp b/kernel/include/kernel/filesystem/ext2/filesystem.hpp index 1445e5a..763cd1d 100644 --- a/kernel/include/kernel/filesystem/ext2/ext2_filesystem.hpp +++ b/kernel/include/ker |
