summaryrefslogtreecommitdiff
path: root/kernel/cpu/syscall.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/cpu/syscall.c')
-rw-r--r--kernel/cpu/syscall.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/cpu/syscall.c b/kernel/cpu/syscall.c
index c982648..6b260d3 100644
--- a/kernel/cpu/syscall.c
+++ b/kernel/cpu/syscall.c
@@ -53,13 +53,13 @@ int syscall_pread(SYS_PREAD_PARAMS *args) {
return vfs_pread(args->fd, args->buf, args->count, args->offset);
}
-int syscall_read(SYS_READ_PARAMS *args) {
- vfs_fd_t *fd = get_vfs_fd(args->fd);
- if (!fd) {
+int syscall_mread(int fd, void *buf, size_t count, int blocking) {
+ vfs_fd_t *fd_ptr = get_vfs_fd(fd, NULL);
+ if (!fd_ptr) {
return -EBADF;
}
- int rc = vfs_pread(args->fd, args->buf, args->count, fd->offset);
- fd->offset += rc;
+ int rc = vfs_pmread(fd, buf, count, blocking, fd_ptr->offset);
+ fd_ptr->offset += rc;
return rc;
}
@@ -152,7 +152,7 @@ int syscall_tcp_read(u32 socket, u8 *buffer, u32 buffer_size, u64 *out) {
int (*syscall_functions[])() = {
(void(*))syscall_open,
- (void(*))syscall_read,
+ (void(*))syscall_mread,
(void(*))syscall_write,
(void(*))syscall_pread,
(void(*))syscall_pwrite,