1#if !defined ISO && !defined ISO99 && !defined ISO11
2#ifdef  POSIX
3# define pid_t __pid_t
4#endif
5
6constant WNOHANG
7constant WUNTRACED
8
9macro WEXITSTATUS
10# if !defined XPG4 && !defined POSIX && !defined POSIX2008
11macro WIFCONTINUED
12# endif
13macro WIFEXITED
14macro WIFSIGNALED
15macro WIFSTOPPED
16macro WSTOPSIG
17macro WTERMSIG
18
19# if !defined XPG4 && !defined POSIX
20constant WEXITED
21constant WSTOPPED
22#  ifndef POSIX2008
23constant WCONTINUED
24#  endif
25constant WNOHANG
26constant WNOWAIT
27# endif
28
29#if !defined XPG4 && !defined POSIX
30type idtype_t
31
32constant P_ALL
33constant P_PID
34constant P_PGID
35
36type id_t
37
38type siginfo_t
39
40element siginfo_t int si_signo
41element siginfo_t int si_errno
42element siginfo_t int si_code
43element siginfo_t pid_t si_pid
44element siginfo_t uid_t si_uid
45element siginfo_t {void*} si_addr
46element siginfo_t int si_status
47// Bug 23821: si_band has type int on sparc64.
48xfail[sparc64-linux]-element siginfo_t long si_band
49# ifndef XPG42
50element siginfo_t {union sigval} si_value
51# endif
52#endif
53
54#if !defined POSIX && !defined XPG4 && !defined XOPEN2K8 && !defined POSIX2008
55type {struct rusage}
56
57element {struct rusage} {struct timeval} ru_utime
58element {struct rusage} {struct timeval} ru_stime
59#endif
60
61#if !defined POSIX
62type pid_t
63#endif
64
65function pid_t wait (int*)
66#if !defined XPG4 && !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
67function pid_t wait3 (int*, int, struct rusage*)
68#endif
69#if !defined XPG4 && !defined POSIX
70function int waitid (idtype_t, id_t, siginfo_t*, int)
71#endif
72function pid_t waitpid (pid_t, int*, int)
73
74#if !defined XPG4 && !defined POSIX
75allow-header signal.h
76allow-header sys/resource.h
77
78allow si_*
79allow W*
80allow P_*
81allow BUS_
82allow CLD_
83allow FPE_
84allow ILL_
85allow POLL_
86allow SEGV_
87allow SI_
88allow TRAP_
89#endif
90allow *_t
91#endif
92