aboutsummaryrefslogtreecommitdiff
path: root/kernel/filesystem/src/inode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/filesystem/src/inode.cpp')
-rw-r--r--kernel/filesystem/src/inode.cpp108
1 files changed, 0 insertions, 108 deletions
diff --git a/kernel/filesystem/src/inode.cpp b/kernel/filesystem/src/inode.cpp
deleted file mode 100644
index 231ee33..0000000
--- a/kernel/filesystem/src/inode.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-#include "filesystem/inode.hpp"
-
-#include "kapi/system.hpp"
-
-#include "devices/device.hpp"
-#include "filesystem/inode_metadata.hpp"
-
-#include <kstd/memory>
-
-#include <cstddef>
-
-namespace filesystem
-{
- inode::inode(inode_kind kind)
- : m_kind(kind)
- {}
-
- inode::inode(kstd::shared_ptr<devices::device> const & device)
- : m_kind(inode_kind::device)
- , m_device(device)
- {
- if (!m_device)
- {
- kapi::system::panic("[FILESYSTEM] inode constructed with null device.");
- }
- }
-
- auto inode::metadata() const -> inode_metadata
- {
- auto meta = inode_metadata{};
- meta.kind = m_kind;
-
- if (is_device())
- {
- meta.major = m_device->major();
- meta.minor = m_device->minor();
- }
-
- return meta;
- }
-
- auto inode::is_directory() const -> bool
- {
- return m_kind == inode_kind::directory;
- }
-
- auto inode::is_regular() const -> bool
- {
- return m_kind == inode_kind::regular;
- }
-
- auto inode::is_device() const -> bool
- {
- return m_kind == inode_kind::device;
- }
-
- auto inode::is_block_device() const -> bool
- {
- return is_device() && m_device->is_block_device();
- }
-
- auto inode::major_device() const -> size_t
- {
- if (!is_device())
- {
- kapi::system::panic("[FILESYSTEM] inode::major_device called on non-device inode.");
- }
-
- return m_device->major();
- }
-
- auto inode::minor_device() const -> size_t
- {
- if (!is_device())
- {
- kapi::system::panic("[FILESYSTEM] inode::minor_device called on non-device inode.");
- }
-
- return m_device->minor();
- }
-
- auto inode::backing_device() const -> kstd::shared_ptr<devices::device> const &
- {
- return m_device;
- }
-
- auto inode::read(void * /*buffer*/, size_t /*offset*/, size_t /*size*/) const -> size_t
- {
- if (is_device())
- {
- kapi::system::panic("[FILESYSTEM] inode::read called on device inode. Open it as a device file first.");
- }
-
- // TODO BA-FS26
- return 0;
- }
-
- auto inode::write(void const *, size_t, size_t) -> size_t
- {
- if (is_device())
- {
- kapi::system::panic("[FILESYSTEM] inode::write called on device inode. Open it as a device file first.");
- }
-
- kapi::system::panic("[FILESYSTEM] inode::write is not implemented yet");
- return 0;
- }
-} // namespace filesystem \ No newline at end of file