libc: Add missing waitid() implementation.
Change-Id: I312ee608dbf9249e4886a10d45d13e3cda8a9042
diff --git a/libc/include/sys/linux-unistd.h b/libc/include/sys/linux-unistd.h
index 5e9c2f0..a1905b3 100644
--- a/libc/include/sys/linux-unistd.h
+++ b/libc/include/sys/linux-unistd.h
@@ -9,7 +9,7 @@
void _exit_thread (int);
pid_t __fork (void);
pid_t _waitpid (pid_t, int*, int, struct rusage*);
-int waitid (int, pid_t, struct siginfo_t*, int,void*);
+int __waitid (int, pid_t, struct siginfo_t*, int,void*);
pid_t __sys_clone (int, void*, int*, void*, int*);
int execve (const char*, char* const*, char* const*);
int __setuid (uid_t);
diff --git a/libc/include/sys/wait.h b/libc/include/sys/wait.h
index 8ba1837..573e220 100644
--- a/libc/include/sys/wait.h
+++ b/libc/include/sys/wait.h
@@ -32,6 +32,7 @@
#include <sys/types.h>
#include <sys/resource.h>
#include <linux/wait.h>
+#include <signal.h>
__BEGIN_DECLS
@@ -49,6 +50,14 @@
extern pid_t wait3(int *, int, struct rusage *);
extern pid_t wait4(pid_t, int *, int, struct rusage *);
+/* Posix states that idtype_t should be an enumeration type, but
+ * the kernel headers define P_ALL, P_PID and P_PGID as constant macros
+ * instead.
+ */
+typedef int idtype_t;
+
+extern int waidit(idtype_t which, id_t id, siginfo_t *info, int options);
+
__END_DECLS
#endif /* _SYS_WAIT_H_ */