diff options
Diffstat (limited to 'src/kernel/syscalls.c')
-rw-r--r-- | src/kernel/syscalls.c | 11 |
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: |