aboutsummaryrefslogtreecommitdiff
path: root/kernel/kernel/filesystem/filesystem.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel/filesystem/filesystem.hpp')
-rw-r--r--kernel/kernel/filesystem/filesystem.hpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/kernel/filesystem/filesystem.hpp b/kernel/kernel/filesystem/filesystem.hpp
index 1264d00d..aa6286bf 100644
--- a/kernel/kernel/filesystem/filesystem.hpp
+++ b/kernel/kernel/filesystem/filesystem.hpp
@@ -2,6 +2,7 @@
#define TEACH_OS_KERNEL_FILESYSTEM_FILESYSTEM_HPP
#include <kernel/filesystem/inode.hpp>
+#include <kernel/filesystem/vfs_types.hpp>
#include <kstd/memory.hpp>
#include <kstd/result.hpp>
@@ -54,6 +55,17 @@ namespace kernel::filesystem
-> kstd::result<kstd::shared_ptr<inode>> = 0;
/**
+ @brief Creates a new inode with @p name within a @p parent directory.
+ @param parent The parent directory inode.
+ @param name The name of the inode to create.
+ @param inode_type The type of inode to be created.
+ @return A pointer to the created inode, or a null pointer if creation failed.
+ */
+ [[nodiscard]] virtual auto create_inode(kstd::shared_ptr<inode> const & parent, std::string_view name,
+ vfs_types::inode_type inode_type)
+ -> kstd::result<kstd::shared_ptr<inode>> = 0;
+
+ /**
@brief Returns a reference to the root inode of the filesystem.
*/
[[nodiscard]] auto root_inode() const -> kstd::shared_ptr<inode> const &;