#include "kernel/filesystem/open_file_description.hpp" #include "kernel/filesystem/file.hpp" #include #include #include namespace filesystem { open_file_description::open_file_description(kstd::shared_ptr const & file) : m_file(file) , m_offset(0) { if (!file) { kstd::os::panic("[FILESYSTEM] open_file_description constructed with null file."); } } auto open_file_description::read(void * buffer, size_t size) -> size_t { auto read_bytes = m_file->read(buffer, m_offset, size); m_offset += read_bytes; return read_bytes; } auto open_file_description::write(void const * buffer, size_t size) -> size_t { auto written_bytes = m_file->write(buffer, m_offset, size); m_offset += written_bytes; return written_bytes; } } // namespace filesystem