From bbdacaddcc25d1d137a0bb0781eba603641baa92 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Thu, 7 Jul 2022 19:24:42 +0200 Subject: kernel/vfs: delegate support in _syscall_fs_respond! this is big in terms of speed, it avoids a lot of unnecessary context switches --- src/kernel/arch/i386/driver/serial.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/kernel/arch/i386/driver/serial.c') diff --git a/src/kernel/arch/i386/driver/serial.c b/src/kernel/arch/i386/driver/serial.c index b776d0c..a5285e4 100644 --- a/src/kernel/arch/i386/driver/serial.c +++ b/src/kernel/arch/i386/driver/serial.c @@ -73,7 +73,7 @@ static void accept(struct vfs_request *req) { switch (req->type) { case VFSOP_OPEN: valid = req->input.len == 0 && !(req->flags & OPEN_CREATE); - vfsreq_finish(req, valid ? 0 : -1); + vfsreq_finish(req, valid ? 0 : -1, 0, NULL); break; case VFSOP_READ: if (ring_size((void*)&backlog) == 0) { @@ -83,9 +83,9 @@ static void accept(struct vfs_request *req) { ret = clamp(0, req->output.len, sizeof buf); ret = ring_get((void*)&backlog, buf, ret); virt_cpy_to(req->caller->pages, req->output.buf, buf, ret); - vfsreq_finish(req, ret); + vfsreq_finish(req, ret, 0, NULL); } else { - vfsreq_finish(req, -1); + vfsreq_finish(req, -1, 0, NULL); } break; case VFSOP_WRITE: @@ -97,10 +97,10 @@ static void accept(struct vfs_request *req) { serial_write(iter.frag, iter.frag_len); ret = iter.prior; } else ret = -1; - vfsreq_finish(req, ret); + vfsreq_finish(req, ret, 0, NULL); break; default: - vfsreq_finish(req, -1); + vfsreq_finish(req, -1, 0, NULL); break; } } -- cgit v1.2.3