summaryrefslogtreecommitdiff
path: root/include/sys/wait.h
diff options
context:
space:
mode:
authorKacper <kacper@mail.openlinux.dev>2025-12-07 20:10:31 +0100
committerKacper <kacper@mail.openlinux.dev>2025-12-07 20:10:31 +0100
commitfc00c656c96528112d05cf0edf8631bd5eaea446 (patch)
treea6e0e6c588191a8bd1c64afc3b7a258e3e66c236 /include/sys/wait.h
Add build system scaffolding and libc headers
Diffstat (limited to 'include/sys/wait.h')
-rw-r--r--include/sys/wait.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/include/sys/wait.h b/include/sys/wait.h
new file mode 100644
index 00000000..bbe8a8fe
--- /dev/null
+++ b/include/sys/wait.h
@@ -0,0 +1,45 @@
+#ifndef __WAIT_H
+#define __WAIT_H
+
+#define WCONTINUED 0x00000008
+#define WNOHANG 0x00000001
+#define WUNTRACED 0x00000002
+#define WCOREDUMP(__s) ((__s) & 0x80)
+#define WIFCONTINUED(__s) ((__s) == 0xffff)
+#define WIFEXITED(__s) (!WTERMSIG(__s))
+#define WIFSIGNALED(__s) (((s) & 0xffff) - 1U < 0xffu)
+#define WIFSTOPPED(__s) ((short)((((__s) & 0xffff) * 0x10001U) >> 8) > 0x7f00)
+#define WSTOPSIG(__s) WEXITSTATUS(__s)
+#define WTERMSIG(__s) ((__s) & 0x7f)
+
+#define WEXITED
+#define WNOWAIT
+#define WSTOPPED
+
+typedef __UINT32_TYPE__ id_t;
+typedef __INT64_TYPE__ pid_t;
+typedef __UINT32_TYPE__ uid_t;
+
+union sigval {
+ int sival_int;
+ void *sival_ptr;
+};
+
+typedef struct {
+ int si_signo;
+ int si_code;
+ int si_errno;
+ pid_t si_pid;
+ uid_t si_uid;
+ void *si_addr;
+ int si_status;
+ union sigval si_value;
+} siginfo_t;
+
+typedef enum { P_ALL = 0, P_PID = 1, P_PGID = 2 } idtype_t;
+
+pid_t wait(int *);
+int waitid(idtype_t, id_t, siginfo_t *, int);
+pid_t waitpid(pid_t, int *, int);
+
+#endif