Kernel: Implement read/write/truncate for TmpFileInode

This commit is contained in:
2023-11-05 02:28:43 +02:00
parent 99d7b0917d
commit c27d20abd8
3 changed files with 81 additions and 0 deletions

View File

@@ -28,6 +28,9 @@ namespace Kernel
BAN::ErrorOr<BAN::RefPtr<TmpInode>> open_inode(ino_t ino);
// FIXME: read_block and write_block should not require external buffer
// probably some wrapper like PageTable::with_fast_page could work?
void read_inode(ino_t ino, TmpInodeInfo& out);
void write_inode(ino_t ino, const TmpInodeInfo&);
void delete_inode(ino_t ino);

View File

@@ -53,6 +53,11 @@ namespace Kernel
static BAN::ErrorOr<BAN::RefPtr<TmpFileInode>> create(TmpFileSystem&, mode_t, uid_t, gid_t);
~TmpFileInode();
protected:
virtual BAN::ErrorOr<size_t> read_impl(off_t, BAN::ByteSpan) override;
virtual BAN::ErrorOr<size_t> write_impl(off_t, BAN::ConstByteSpan) override;
virtual BAN::ErrorOr<void> truncate_impl(size_t) override;
private:
TmpFileInode(TmpFileSystem&, ino_t, const TmpInodeInfo&);