diff options
author | Marvin Borner | 2021-01-15 16:34:19 +0100 |
---|---|---|
committer | Marvin Borner | 2021-01-15 16:34:19 +0100 |
commit | 41cba1de51b328979ff2d0261b4141bb4e128fe6 (patch) | |
tree | 88ea7bda9e7a675ed0e043ea8662ea9cf3767ce3 /kernel/features/syscall.c | |
parent | d3924f541f36bc08fed87f25ec7fc6e64b86e511 (diff) |
Implemented basic dev ready-state waiting
Diffstat (limited to 'kernel/features/syscall.c')
-rw-r--r-- | kernel/features/syscall.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/features/syscall.c b/kernel/features/syscall.c index c5570c3..59965a5 100644 --- a/kernel/features/syscall.c +++ b/kernel/features/syscall.c @@ -40,8 +40,13 @@ void syscall_handler(struct regs *r) 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; + struct proc *p = proc_current(); + p->state = PROC_SLEEPING; + p->waits_for = vfs_find_dev((char *)r->ebx)->id; scheduler(r); + sti(); + while (1) + hlt(); } break; } |