1c80476e4SDavid E. O'Brien /* The <sys/wait.h> header contains macros related to wait(). The value 2c80476e4SDavid E. O'Brien * returned by wait() and waitpid() depends on whether the process 3c80476e4SDavid E. O'Brien * terminated by an exit() call, was killed by a signal, or was stopped 4c80476e4SDavid E. O'Brien * due to job control, as follows: 5c80476e4SDavid E. O'Brien * 6c80476e4SDavid E. O'Brien * High byte Low byte 7c80476e4SDavid E. O'Brien * +---------------------+ 8c80476e4SDavid E. O'Brien * exit(status) | status | 0 | 9c80476e4SDavid E. O'Brien * +---------------------+ 10c80476e4SDavid E. O'Brien * killed by signal | 0 | signal | 11c80476e4SDavid E. O'Brien * +---------------------+ 12c80476e4SDavid E. O'Brien * stopped (job control) | signal | 0177 | 13c80476e4SDavid E. O'Brien * +---------------------+ 14c80476e4SDavid E. O'Brien */ 15c80476e4SDavid E. O'Brien 16c80476e4SDavid E. O'Brien #ifndef _WAIT_H 17c80476e4SDavid E. O'Brien #define _WAIT_H 18c80476e4SDavid E. O'Brien 19c80476e4SDavid E. O'Brien #ifndef _TYPES_H /* not quite right */ 20c80476e4SDavid E. O'Brien #include <sys/types.h> 21c80476e4SDavid E. O'Brien #endif 22c80476e4SDavid E. O'Brien 23c80476e4SDavid E. O'Brien #define __LOW(v) ((v) & 0377) 24c80476e4SDavid E. O'Brien #define __HIGH(v) (((v) >> 8) & 0377) 25c80476e4SDavid E. O'Brien 26c80476e4SDavid E. O'Brien #define WNOHANG 1 /* do not wait for child to exit */ 27c80476e4SDavid E. O'Brien #define WUNTRACED 2 /* for job control; not implemented */ 28c80476e4SDavid E. O'Brien 29c80476e4SDavid E. O'Brien #define WIFEXITED(s) (__LOW(s) == 0) /* normal exit */ 30c80476e4SDavid E. O'Brien #define WEXITSTATUS(s) (__HIGH(s)) /* exit status */ 31c80476e4SDavid E. O'Brien #define WTERMSIG(s) (__LOW(s) & 0177) /* sig value */ 32c80476e4SDavid E. O'Brien #define WIFSIGNALED(s) ((((unsigned int)(s)-1) & 0xFFFF) < 0xFF) /* signaled */ 33c80476e4SDavid E. O'Brien #define WIFSTOPPED(s) (__LOW(s) == 0177) /* stopped */ 34c80476e4SDavid E. O'Brien #define WSTOPSIG(s) (__HIGH(s) & 0377) /* stop signal */ 35c80476e4SDavid E. O'Brien 36c80476e4SDavid E. O'Brien /* Function Prototypes. */ 37c80476e4SDavid E. O'Brien #ifndef _ANSI_H 38c80476e4SDavid E. O'Brien #include <ansi.h> 39c80476e4SDavid E. O'Brien #endif 40c80476e4SDavid E. O'Brien 41c80476e4SDavid E. O'Brien _PROTOTYPE( pid_t wait, (int *_stat_loc) ); 42c80476e4SDavid E. O'Brien _PROTOTYPE( pid_t waitpid, (pid_t _pid, int *_stat_loc, int _options) ); 43c80476e4SDavid E. O'Brien 44c80476e4SDavid E. O'Brien #endif /* _WAIT_H */ 45