From f229b2e8a6ca840af8f3ac26cc2f412891a99a5e Mon Sep 17 00:00:00 2001 From: dzwdz Date: Sun, 5 Sep 2021 15:32:00 +0200 Subject: root vfs: implement writing to /tty --- src/kernel/syscalls.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/kernel/syscalls.c') diff --git a/src/kernel/syscalls.c b/src/kernel/syscalls.c index 8f520ab..4718b4b 100644 --- a/src/kernel/syscalls.c +++ b/src/kernel/syscalls.c @@ -141,8 +141,18 @@ int _syscall_fd_read(handle_t handle, user_ptr buf, int len) { return -1; } -int _syscall_fd_write(handle_t handle, user_ptr buf, int len) { - if (handle < 0 || handle >= HANDLE_MAX) return -1; +int _syscall_fd_write(handle_t handle_num, user_ptr buf, int len) { + struct handle *handle = &process_current->handles[handle_num]; + if (handle_num < 0 || handle_num >= HANDLE_MAX) return -1; + if (handle->type != HANDLE_FILE) return -1; + vfs_backend_dispatch(handle->file.backend, (struct vfs_op) { + .type = VFSOP_WRITE, + .rw = { + .buf = buf, + .buf_len = len, + .id = handle->file.id, + } + }); return -1; } -- cgit v1.2.3