From 91abed9333241731d0cd877beba4e2d4675989c8 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Wed, 13 Jan 2021 19:51:40 +0100 Subject: VFS ready function and read yielding --- kernel/features/syscall.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'kernel/features/syscall.c') diff --git a/kernel/features/syscall.c b/kernel/features/syscall.c index dbb7033..c5570c3 100644 --- a/kernel/features/syscall.c +++ b/kernel/features/syscall.c @@ -37,7 +37,12 @@ void syscall_handler(struct regs *r) break; } case SYS_READ: { - r->eax = (u32)vfs_read((char *)r->ebx, (void *)r->ecx, r->edx, r->esi); + if (vfs_ready((char *)r->ebx)) { + r->eax = (u32)vfs_read((char *)r->ebx, (void *)r->ecx, r->edx, r->esi); + } else { + proc_current()->state = PROC_SLEEPING; + scheduler(r); + } break; } case SYS_WRITE: { -- cgit v1.2.3