|
|
1.1 root 1: /* Define how to access the int that the wait system call stores.
2: This has been compatible in all Unix systems since time immemorial,
3: but various well-meaning people have defined various different
4: words for the same old bits in the same old int (sometimes claimed
5: to be a struct). We just know it's an int and we use these macros
6: to access the bits. */
7:
8: /* The following macros are defined equivalently to their definitions
9: in POSIX.1. We fail to define WNOHANG and WUNTRACED, which POSIX.1
10: <sys/wait.h> defines, since our code does not use waitpid(). We
11: also fail to declare wait() and waitpid(). */
12:
13: #define WIFEXITED(w) (((w)&0377) == 0)
14: #define WIFSIGNALED(w) (((w)&0377) != 0177 && ((w)&~0377) == 0)
15: #ifdef IBM6000
16:
17: /* Unfortunately, the above comment (about being compatible in all Unix
18: systems) is not quite correct for AIX, sigh. And AIX 3.2 can generate
19: status words like 0x57c (sigtrap received after load), and gdb would
20: choke on it. */
21:
22: #define WIFSTOPPED(w) ((w)&0x40)
23:
24: #else
25: #define WIFSTOPPED(w) (((w)&0377) == 0177)
26: #endif
27:
28: #define WEXITSTATUS(w) ((w) >> 8) /* same as WRETCODE */
29: #define WTERMSIG(w) ((w) & 0177)
30: #define WSTOPSIG(w) ((w) >> 8)
31:
32: /* These are not defined in POSIX, but are used by our programs. */
33:
34: #define WAITTYPE int
35:
36: #define WCOREDUMP(w) (((w)&0200) != 0)
37: #define WSETEXIT(w,status) ((w) = (0 | ((status) << 8)))
38: #define WSETSTOP(w,sig) ((w) = (0177 | ((sig) << 8)))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.