aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/vfs.cpp
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-04-08 09:31:32 +0200
committerLukas Oesch <lukasoesch20@gmail.com>2026-04-11 07:58:20 +0200
commitdd330e7a05905713acfa87ec109956bfe78f78c4 (patch)
treecb2d740da921f6ebf34269e08ef43413bd510d79 /kernel/src/filesystem/vfs.cpp
parent2240b9a36e4a9f6f8291c9271e6aac8f5536dbd7 (diff)
downloadteachos-dd330e7a05905713acfa87ec109956bfe78f78c4.tar.xz
teachos-dd330e7a05905713acfa87ec109956bfe78f78c4.zip
add descriptions, some refactoring
Diffstat (limited to 'kernel/src/filesystem/vfs.cpp')
-rw-r--r--kernel/src/filesystem/vfs.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/kernel/src/filesystem/vfs.cpp b/kernel/src/filesystem/vfs.cpp
index f9a051a..2578036 100644
--- a/kernel/src/filesystem/vfs.cpp
+++ b/kernel/src/filesystem/vfs.cpp
@@ -21,6 +21,11 @@ namespace kernel::filesystem
namespace
{
constinit auto static active_vfs = std::optional<vfs>{};
+
+ // Error codes
+ constexpr int INVALID_PATH = -1;
+ constexpr int MOUNT_POINT_NOT_FOUND = -2;
+ constexpr int FILESYSTEM_NULL = -3;
} // namespace
auto vfs::init() -> void
@@ -79,18 +84,12 @@ namespace kernel::filesystem
{
if (!filesystem)
{
- return -1; // TODO BA-FS26 panic or errorcode?
- }
-
- if (path.empty() || path.front() != '/')
- {
- return -1; // TODO BA-FS26 panic or errorcode?
+ return FILESYSTEM_NULL;
}
- // TODO BA-FS26 better path validation
- if ((path.size() > 1 && path.back() == '/'))
+ if (path.empty() || path.front() != '/' || (path.size() > 1 && path.back() == '/'))
{
- return -1; // TODO BA-FS26 panic or errorcode?
+ return INVALID_PATH;
}
if (auto mount_point_dentry = resolve_path(path))
@@ -99,7 +98,7 @@ namespace kernel::filesystem
return 0;
}
- return -1;
+ return MOUNT_POINT_NOT_FOUND;
}
auto vfs::do_mount_internal(std::string_view path, kstd::shared_ptr<dentry> const & mount_point_dentry,