aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kapi')
-rw-r--r--kernel/kapi/filesystem.cpp11
-rw-r--r--kernel/kapi/filesystem.tests.cpp9
2 files changed, 20 insertions, 0 deletions
diff --git a/kernel/kapi/filesystem.cpp b/kernel/kapi/filesystem.cpp
index e50ce2c0..7a0c2728 100644
--- a/kernel/kapi/filesystem.cpp
+++ b/kernel/kapi/filesystem.cpp
@@ -4,6 +4,7 @@
#include <kstd/memory.hpp>
#include <kstd/result.hpp>
+#include <kstd/system_error.hpp>
#include <kstd/units.hpp>
#include <cstddef>
@@ -11,6 +12,7 @@
#include <expected>
#include <span>
#include <string_view>
+#include <utility>
namespace kapi::filesystem
{
@@ -88,4 +90,13 @@ namespace kapi::filesystem
return kernel::vfs::vfs::get().create_device_node(path, static_cast<std::uint32_t>(type), number);
}
+ auto read_directory(std::size_t file_descriptor, directory_cursor position, std::span<directory_entry> buffer)
+ -> kstd::result<std::pair<std::size_t, directory_cursor>>
+ {
+ static_cast<void>(file_descriptor);
+ static_cast<void>(position);
+ static_cast<void>(buffer);
+ return kstd::failure(make_error_code(kstd::errc::not_supported));
+ }
+
} // namespace kapi::filesystem \ No newline at end of file
diff --git a/kernel/kapi/filesystem.tests.cpp b/kernel/kapi/filesystem.tests.cpp
index d23255c3..b2e39967 100644
--- a/kernel/kapi/filesystem.tests.cpp
+++ b/kernel/kapi/filesystem.tests.cpp
@@ -292,6 +292,15 @@ SCENARIO_METHOD(kernel::tests::vfs::storage_boot_module_vfs_fixture, "Kapi files
REQUIRE(kapi::filesystem::umount("/information"));
}
+
+ THEN("listing the contents of a directory fails")
+ {
+ auto directory = kapi::filesystem::open("/information");
+ REQUIRE(directory);
+
+ auto buffer = std::vector<kapi::filesystem::directory_entry>{10};
+ REQUIRE_FALSE(kapi::filesystem::read_directory(*directory, {}, buffer));
+ }
}
}