diff options
Diffstat (limited to 'kernel/filesystem/include')
| -rw-r--r-- | kernel/filesystem/include/filesystem/inode.hpp | 14 | ||||
| -rw-r--r-- | kernel/filesystem/include/filesystem/inode_file.hpp | 25 |
2 files changed, 39 insertions, 0 deletions
diff --git a/kernel/filesystem/include/filesystem/inode.hpp b/kernel/filesystem/include/filesystem/inode.hpp new file mode 100644 index 0000000..44ec09a --- /dev/null +++ b/kernel/filesystem/include/filesystem/inode.hpp @@ -0,0 +1,14 @@ +#ifndef TEACH_OS_KERNEL_FILESYSTEM_INODE_HPP +#define TEACH_OS_KERNEL_FILESYSTEM_INODE_HPP + +#include <cstddef> +namespace filesystem +{ + struct inode + { + auto read(void * buffer, size_t offset, size_t size) const -> size_t; + auto write(void const * buffer, size_t offset, size_t size) -> size_t; + }; +} // namespace filesystem + +#endif diff --git a/kernel/filesystem/include/filesystem/inode_file.hpp b/kernel/filesystem/include/filesystem/inode_file.hpp new file mode 100644 index 0000000..c091280 --- /dev/null +++ b/kernel/filesystem/include/filesystem/inode_file.hpp @@ -0,0 +1,25 @@ +#ifndef TEACH_OS_KERNEL_FILESYSTEM_INODE_FILE_HPP +#define TEACH_OS_KERNEL_FILESYSTEM_INODE_FILE_HPP + +#include "filesystem/file.hpp" +#include "filesystem/inode.hpp" + +#include <cstddef> + +namespace filesystem +{ + struct inode_file : file + { + explicit inode_file(inode * inode); + + auto open() -> void override; + + auto read(void * buffer, size_t offset, size_t size) const -> size_t override; + auto write(void const * buffer, size_t offset, size_t size) -> size_t override; + + private: + inode * m_inode; + }; +} // namespace filesystem + +#endif
\ No newline at end of file |
