From 84fa0102c6906252999967925f32098ab6d5a259 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Sun, 11 Jun 2023 19:17:39 +0200 Subject: kernel: replace await with wait2, roughly compatible with POSIX dash works now :^))) --- src/user/lib/syswait.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/user/lib/syswait.c') diff --git a/src/user/lib/syswait.c b/src/user/lib/syswait.c index 6389cb2..ce80c7b 100644 --- a/src/user/lib/syswait.c +++ b/src/user/lib/syswait.c @@ -1,8 +1,22 @@ #include <bits/panic.h> +#include <camellia.h> +#include <camellia/syscalls.h> +#include <errno.h> #include <sys/resource.h> #include <sys/wait.h> pid_t wait3(int *wstatus, int opts, struct rusage *rusage) { - (void)wstatus; (void)opts; (void)rusage; - __libc_panic("unimplemented"); + struct sys_wait2 res; + if (opts || rusage) { + __libc_panic("unimplemented"); + } + pid_t ret = _sys_wait2(-1, 0, &res); + if (ret < 0) { + errno = -ret; + return -1; + } + if (wstatus) { + *wstatus = res.status & 0xFF; + } + return ret; } -- cgit v1.2.3