diff options
| author | Lukas Oesch <lukasoesch20@gmail.com> | 2026-04-26 10:11:24 +0200 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-04-26 10:11:24 +0200 |
| commit | 4e2624b63236fa309c9ecf53a694b6ac9babf4e6 (patch) | |
| tree | c0103162cb0654955d22aceab63c49becbac2cff /kernel/src/filesystem/open_file_descriptor.cpp | |
| parent | c002a6fe53375d8757d43c48c59ac7f327f412b5 (diff) | |
| download | teachos-4e2624b63236fa309c9ecf53a694b6ac9babf4e6.tar.xz teachos-4e2624b63236fa309c9ecf53a694b6ac9babf4e6.zip | |
rename open_file_description to open_file_descriptor
Diffstat (limited to 'kernel/src/filesystem/open_file_descriptor.cpp')
| -rw-r--r-- | kernel/src/filesystem/open_file_descriptor.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/kernel/src/filesystem/open_file_descriptor.cpp b/kernel/src/filesystem/open_file_descriptor.cpp new file mode 100644 index 0000000..25bffbd --- /dev/null +++ b/kernel/src/filesystem/open_file_descriptor.cpp @@ -0,0 +1,40 @@ +#include <kernel/filesystem/inode.hpp> +#include <kernel/filesystem/open_file_descriptor.hpp> + +#include <kstd/memory> +#include <kstd/os/error.hpp> + +#include <cstddef> + +namespace kernel::filesystem +{ + open_file_descriptor::open_file_descriptor(kstd::shared_ptr<inode> const & inode) + : m_inode(inode) + , m_offset(0) + { + if (!inode) + { + kstd::os::panic("[FILESYSTEM] open_file_descriptor constructed with null inode."); + } + } + + auto open_file_descriptor::read(void * buffer, size_t size) -> size_t + { + auto read_bytes = m_inode->read(buffer, m_offset, size); + m_offset += read_bytes; + return read_bytes; + } + + auto open_file_descriptor::write(void const * buffer, size_t size) -> size_t + { + auto written_bytes = m_inode->write(buffer, m_offset, size); + m_offset += written_bytes; + return written_bytes; + } + + auto open_file_descriptor::offset() const -> size_t + { + return m_offset; + } + +} // namespace kernel::filesystem
\ No newline at end of file |
