aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/ext2/inode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/filesystem/ext2/inode.cpp')
-rw-r--r--kernel/src/filesystem/ext2/inode.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/kernel/src/filesystem/ext2/inode.cpp b/kernel/src/filesystem/ext2/inode.cpp
index c45c41e..279c84f 100644
--- a/kernel/src/filesystem/ext2/inode.cpp
+++ b/kernel/src/filesystem/ext2/inode.cpp
@@ -11,9 +11,9 @@
namespace kernel::filesystem::ext2
{
- inode::inode(filesystem * fs)
- : kernel::filesystem::inode(inode_kind::regular)
- , m_filesystem(fs)
+ inode::inode(filesystem * fs, inode_data const & data)
+ : m_filesystem(fs)
+ , m_data(data)
{
if (!m_filesystem)
{
@@ -57,4 +57,19 @@ namespace kernel::filesystem::ext2
kapi::system::panic("[EXT2] inode::write is not implemented yet");
return 0;
}
+
+ [[nodiscard]] auto inode::data() const -> inode_data const &
+ {
+ return m_data;
+ }
+
+ auto inode::is_regular() const -> bool
+ {
+ return (m_data.mode & constants::mode_mask) == constants::mode_regular;
+ }
+
+ auto inode::is_directory() const -> bool
+ {
+ return (m_data.mode & constants::mode_mask) == constants::mode_directory;
+ }
} // namespace kernel::filesystem::ext2