summaryrefslogtreecommitdiff
path: root/src/kernel/syscalls.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/syscalls.c')
-rw-r--r--src/kernel/syscalls.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/kernel/syscalls.c b/src/kernel/syscalls.c
index 497aa7f..bc185bd 100644
--- a/src/kernel/syscalls.c
+++ b/src/kernel/syscalls.c
@@ -207,7 +207,8 @@ fail:
return -1;
}
-int _syscall_fs_wait(handle_t back, char __user *buf, int __user *len, int __user *id) {
+int _syscall_fs_wait(handle_t back, char __user *buf, int max_len,
+ struct fs_wait_response __user *res) {
struct handle *back_handle;
if (back < 0 || back >= HANDLE_MAX) return -1;
@@ -219,9 +220,9 @@ int _syscall_fs_wait(handle_t back, char __user *buf, int __user *len, int __use
back_handle->fs.backend->handler = process_current;
/* checking the validity of those pointers here would make
* vfs_request_pass2handler simpler. TODO? */
- process_current->awaited_req.buf = buf;
- process_current->awaited_req.len = len;
- process_current->awaited_req.id = id;
+ process_current->awaited_req.buf = buf;
+ process_current->awaited_req.max_len = max_len;
+ process_current->awaited_req.res = res;
if (back_handle->fs.backend->queue) {
// handle queued requests
@@ -293,7 +294,7 @@ int _syscall(int num, int a, int b, int c, int d) {
case _SYSCALL_FS_CREATE:
return _syscall_fs_create((userptr_t)a);
case _SYSCALL_FS_WAIT:
- return _syscall_fs_wait(a, (userptr_t)b, (userptr_t)c, (userptr_t)d);
+ return _syscall_fs_wait(a, (userptr_t)b, c, (userptr_t)d);
case _SYSCALL_FS_RESPOND:
return _syscall_fs_respond((userptr_t)a, b);
case _SYSCALL_MEMFLAG: