aboutsummaryrefslogtreecommitdiff
path: root/posix/sys
diff options
context:
space:
mode:
Diffstat (limited to 'posix/sys')
-rw-r--r--posix/sys/types.h4
-rw-r--r--posix/sys/wait.h25
2 files changed, 29 insertions, 0 deletions
diff --git a/posix/sys/types.h b/posix/sys/types.h
index ab28d39aaf..d48e0d23eb 100644
--- a/posix/sys/types.h
+++ b/posix/sys/types.h
@@ -81,6 +81,10 @@ typedef __pid_t pid_t;
# define pid_t pid_t
#endif
+#if defined __USE_SVID || defined __USE_XOPEN
+typedef __id_t id_t;
+#endif
+
#ifndef ssize_t
typedef __ssize_t ssize_t;
# define ssize_t ssize_t
diff --git a/posix/sys/wait.h b/posix/sys/wait.h
index e931405ecb..e663f41e05 100644
--- a/posix/sys/wait.h
+++ b/posix/sys/wait.h
@@ -89,6 +89,16 @@ typedef union
# define W_STOPCODE(sig) __W_STOPCODE(sig)
#endif
+/* The following values are used by the `waitid' function. */
+#if defined __USE_SVID || defined __USE_XOPEN
+typedef enum
+{
+ P_ALL, /* Wait for any child. */
+ P_PID, /* Wait for specified process. */
+ P_PGID /* Wait for members of process group. */
+} idtype_t;
+#endif
+
/* Wait for a child to die. When one does, put its status in *STAT_LOC
and return its process ID. For errors, return (pid_t) -1. */
@@ -118,6 +128,21 @@ extern __pid_t __waitpid __P ((__pid_t __pid, int *__stat_loc,
extern __pid_t waitpid __P ((__pid_t __pid, int *__stat_loc,
int __options));
+#if defined __USE_SVID || defined __USE_XOPEN
+# define __need_siginfo_t
+# include <bits/siginfo.h>
+/* Wait for a childing matching IDTYPE and ID to change the status and
+ place appropriate information in *INFOP.
+ If IDTYPE is P_PID, match any process whose process ID is ID.
+ If IDTYPE is P_PGID, match any process whose process group is ID.
+ If IDTYPE is P_ALL, match any process.
+ If the WNOHANG bit is set in OPTIONS, and that child
+ is not already dead, clear *INFOP and return 0. If successful, store
+ exit code and status in *INFOP. */
+extern int waitid __P ((idtype_t __idtype, __id_t __id, siginfo_t *__infop,
+ int __options));
+#endif
+
#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
/* This being here makes the prototypes valid whether or not
we have already included <sys/resource.h> to define `struct rusage'. */