158218Selan #ifndef __libgxx_sys_wait_h
258218Selan 
358218Selan #include <_G_config.h>
458218Selan 
558218Selan extern "C" {
658218Selan #ifdef __sys_wait_h_recursive
758218Selan #include_next <sys/wait.h>
858218Selan #else
958218Selan #define __sys_wait_h_recursive
1058218Selan 
1158218Selan 
1258218Selan #if _G_HAVE_SYS_WAIT
1358218Selan #ifdef VMS
1458218Selan #include "GNU_CC_INCLUDE:[sys]wait.h"
1558218Selan #else
1658218Selan #include_next <sys/wait.h>
1758218Selan #endif
1858218Selan #else /* !_G_HAVE_SYS_WAIT */
1958218Selan /* Traditional definitions. */
2058218Selan #define WEXITSTATUS(status) (((x) >> 8) & 0xFF)
2158218Selan #define WIFSTOPPED(x) (((x) & 0xFF) == 0177)
2258218Selan #define WIFEXITED(x) (! WIFSTOPPED(x) && WTERMSIG(x) == 0)
2358218Selan #define WIFSIGNALED(x) (! WIFSTOPPED(x) && WTERMSIG(x) != 0)
2458218Selan #define WTERMSIG(status) ((x) & 0x7F)
2558218Selan #define WSTOPSIG(status) (((x) >> 8) & 0xFF)
2658218Selan #endif /* !_G_HAVE_SYS_WAIT */
2758218Selan 
2858218Selan #define __libgxx_sys_wait_h 1
2958218Selan 
3058218Selan struct rusage;
31*67663Sbostic extern pid_t wait _G_ARGS((int*));
32*67663Sbostic extern pid_t waitpid _G_ARGS((pid_t, int*, int));
33*67663Sbostic extern pid_t wait3 _G_ARGS((int*, int options, struct rusage*));
34*67663Sbostic extern pid_t wait4 _G_ARGS((pid_t, int*, int, struct rusage*));
3558218Selan #endif
3658218Selan }
3758218Selan 
3858218Selan #endif
39