From 5dd05779ce0a6544f4653eee87d278973386d0ab Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Sat, 30 Nov 2024 17:43:25 +0100 Subject: vfs: Move read() to vfs.c --- kernel/fs/vfs.c | 10 ++++++++++ kernel/fs/vfs.h | 1 + 2 files changed, 11 insertions(+) (limited to 'kernel/fs') diff --git a/kernel/fs/vfs.c b/kernel/fs/vfs.c index 0d03dce..c06c71f 100644 --- a/kernel/fs/vfs.c +++ b/kernel/fs/vfs.c @@ -352,6 +352,16 @@ int vfs_pread(int fd, void *buf, u64 count, u64 offset) { return rc; } +int vfs_read(int fd, void *buf, u64 count) { + vfs_fd_t *fd_ptr = get_vfs_fd(fd, NULL); + if (!fd_ptr) { + return -EBADF; + } + int rc = vfs_pread(fd, buf, count, fd_ptr->offset); + fd_ptr->offset += rc; + return rc; +} + int raw_vfs_pwrite(vfs_fd_t *vfs_fd, void *buf, u64 count, u64 offset) { assert(vfs_fd); assert(vfs_fd->inode); diff --git a/kernel/fs/vfs.h b/kernel/fs/vfs.h index af07c40..cb1c885 100644 --- a/kernel/fs/vfs.h +++ b/kernel/fs/vfs.h @@ -77,6 +77,7 @@ int vfs_write(int fd, const char *buf, u64 count); int vfs_pwrite(int fd, void *buf, u64 count, u64 offset); int raw_vfs_pwrite(vfs_fd_t *vfs_fd, void *buf, u64 count, u64 offset); int raw_vfs_pread(vfs_fd_t *vfs_fd, void *buf, u64 count, u64 offset); +int vfs_read(int fd, void *buf, u64 count); int vfs_pread(int fd, void *buf, u64 count, u64 offset); vfs_vm_object_t *vfs_get_vm_object(int fd, u64 length, u64 offset); int vfs_dup(int fd); -- cgit v1.2.3