aboutsummaryrefslogtreecommitdiff
path: root/kernel/filesystem/src
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/filesystem/src')
-rw-r--r--kernel/filesystem/src/ext2/ext2_filesystem.cpp16
-rw-r--r--kernel/filesystem/src/filesystem.cpp11
-rw-r--r--kernel/filesystem/src/mount.cpp30
3 files changed, 57 insertions, 0 deletions
diff --git a/kernel/filesystem/src/ext2/ext2_filesystem.cpp b/kernel/filesystem/src/ext2/ext2_filesystem.cpp
new file mode 100644
index 0000000..bdd430d
--- /dev/null
+++ b/kernel/filesystem/src/ext2/ext2_filesystem.cpp
@@ -0,0 +1,16 @@
+#include "filesystem/ext2/ext2_filesystem.hpp"
+
+#include "devices/block_device.hpp"
+
+namespace filesystem::ext2
+{
+ auto ext2_filesystem::mount(devices::block_device * block_device) -> int
+ {
+ if (!block_device)
+ {
+ return -1; // TODO BA-FS26 panic or errorcode?
+ }
+ // TODO BA-FS26 implement
+ return 0;
+ }
+} // namespace filesystem::ext2 \ No newline at end of file
diff --git a/kernel/filesystem/src/filesystem.cpp b/kernel/filesystem/src/filesystem.cpp
new file mode 100644
index 0000000..d6a2f25
--- /dev/null
+++ b/kernel/filesystem/src/filesystem.cpp
@@ -0,0 +1,11 @@
+#include "filesystem/filesystem.hpp"
+
+#include "filesystem/inode.hpp"
+
+namespace filesystem
+{
+ auto filesystem::root_inode() -> inode *
+ {
+ return m_root_inode;
+ }
+} // namespace filesystem \ No newline at end of file
diff --git a/kernel/filesystem/src/mount.cpp b/kernel/filesystem/src/mount.cpp
new file mode 100644
index 0000000..6594598
--- /dev/null
+++ b/kernel/filesystem/src/mount.cpp
@@ -0,0 +1,30 @@
+#include "filesystem/mount.hpp"
+
+#include "kapi/system.hpp"
+
+#include "filesystem/filesystem.hpp"
+
+#include <string_view>
+
+namespace filesystem
+{
+ mount::mount(std::string_view const & path, filesystem * fs)
+ : m_path(path)
+ , m_filesystem(fs)
+ {
+ if (!m_filesystem)
+ {
+ kapi::system::panic("[FILESYSTEM] mount initialized with null filesystem.");
+ }
+ }
+
+ auto mount::path() const -> std::string_view
+ {
+ return m_path;
+ }
+
+ auto mount::get_filesystem() const -> filesystem *
+ {
+ return m_filesystem;
+ }
+} // namespace filesystem \ No newline at end of file