diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/filesystem/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | kernel/filesystem/include/filesystem/custody.hpp | 21 | ||||
| -rw-r--r-- | kernel/filesystem/src/custody.cpp | 28 |
3 files changed, 53 insertions, 2 deletions
diff --git a/kernel/filesystem/CMakeLists.txt b/kernel/filesystem/CMakeLists.txt index a6b4e49..19f1be1 100644 --- a/kernel/filesystem/CMakeLists.txt +++ b/kernel/filesystem/CMakeLists.txt @@ -2,8 +2,9 @@ add_library("kernel_filesystem" STATIC) add_library("kernel::filesystem" ALIAS "kernel_filesystem") target_sources("kernel_filesystem" PRIVATE - "src/device_file.cpp" "src/ext2/ext2_filesystem.cpp" + "src/custody.cpp" + "src/device_file.cpp" "src/file_descriptor_table.cpp" "src/filesystem.cpp" "src/inode_file.cpp" @@ -17,8 +18,9 @@ target_sources("kernel_filesystem" PUBLIC FILE_SET HEADERS BASE_DIRS "include" FILES - "include/filesystem/device_file.hpp" "include/filesystem/ext2/ext2_filesystem.hpp" + "include/filesystem/custody.hpp" + "include/filesystem/device_file.hpp" "include/filesystem/file_descriptor_table.hpp" "include/filesystem/file.hpp" "include/filesystem/filesystem.hpp" diff --git a/kernel/filesystem/include/filesystem/custody.hpp b/kernel/filesystem/include/filesystem/custody.hpp new file mode 100644 index 0000000..9ee984d --- /dev/null +++ b/kernel/filesystem/include/filesystem/custody.hpp @@ -0,0 +1,21 @@ +#ifndef TEACH_OS_KERNEL_CUSTODY_HPP +#define TEACH_OS_KERNEL_CUSTODY_HPP + +#include "filesystem/inode.hpp" + +namespace filesystem +{ + struct custody + { + custody(custody * parent, inode * node); + + [[nodiscard]] auto get_inode() const -> inode *; + [[nodiscard]] auto get_parent() const -> custody *; + + private: + custody * m_parent; + inode * m_inode; + }; +} // namespace filesystem + +#endif
\ No newline at end of file diff --git a/kernel/filesystem/src/custody.cpp b/kernel/filesystem/src/custody.cpp new file mode 100644 index 0000000..614e63b --- /dev/null +++ b/kernel/filesystem/src/custody.cpp @@ -0,0 +1,28 @@ +#include "filesystem/custody.hpp" + +#include "kapi/system.hpp" + +#include "filesystem/inode.hpp" + +namespace filesystem +{ + custody::custody(custody * parent, inode * node) + : m_parent(parent) + , m_inode(node) + { + if (!m_inode) + { + kapi::system::panic("[FILESYSTEM] custody constructed with null inode."); + } + } + + auto custody::get_inode() const -> inode * + { + return m_inode; + } + + auto custody::get_parent() const -> custody * + { + return m_parent; + } +} // namespace filesystem
\ No newline at end of file |
