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