summaryrefslogtreecommitdiff
path: root/src/libc/syswait.c
diff options
context:
space:
mode:
authordzwdz2023-08-14 18:51:07 +0200
committerdzwdz2023-08-14 18:51:07 +0200
commit642b5fb0007b64c77d186fcb018d571152ee1d47 (patch)
tree1c466461f3602d306be309a053edae558ef2568e /src/libc/syswait.c
parent8050069c57b729c18c19b1a03ab6e4bf63b4735e (diff)
reorganization: first steps
Diffstat (limited to 'src/libc/syswait.c')
-rw-r--r--src/libc/syswait.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libc/syswait.c b/src/libc/syswait.c
new file mode 100644
index 0000000..ce80c7b
--- /dev/null
+++ b/src/libc/syswait.c
@@ -0,0 +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) {
+ 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;
+}