diff options
author | Anton Kling <anton@kling.gg> | 2024-06-26 21:34:40 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-06-26 21:34:40 +0200 |
commit | e15065fe45f8004adcc8b69bbbe680ced0d530a1 (patch) | |
tree | 19dab20babd5169a8266faf133d41a4ebd61f1f6 /kernel/syscalls/lseek.c | |
parent | 2e2f89c7508dede2c970e6061c2f66d4536162ca (diff) |
Kernel: Move all syscalls into one file
Diffstat (limited to 'kernel/syscalls/lseek.c')
-rw-r--r-- | kernel/syscalls/lseek.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/kernel/syscalls/lseek.c b/kernel/syscalls/lseek.c deleted file mode 100644 index e85d4c1..0000000 --- a/kernel/syscalls/lseek.c +++ /dev/null @@ -1,34 +0,0 @@ -#include <assert.h> -#include <errno.h> -#include <fs/vfs.h> - -// FIXME: These should be in a shared header file with libc -#define SEEK_SET 0 -#define SEEK_CUR 1 -#define SEEK_END 2 - -int syscall_lseek(int fd, int offset, int whence) { - vfs_fd_t *fd_ptr = get_vfs_fd(fd, NULL); - if (!fd_ptr) { - return -EBADF; - } - - off_t ret_offset = fd_ptr->offset; - switch (whence) { - case SEEK_SET: - ret_offset = offset; - break; - case SEEK_CUR: - ret_offset += offset; - break; - case SEEK_END: - assert(fd_ptr->inode); - ret_offset = fd_ptr->inode->file_size + offset; - break; - default: - return -EINVAL; - break; - } - fd_ptr->offset = ret_offset; - return ret_offset; -} |