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
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(). */
13 #define WIFEXITED(w) (((w)&0377) == 0)
14 #define WIFSIGNALED(w) (((w)&0377) != 0177 && ((w)&~0377) == 0)
15 #define WIFSTOPPED(w) (((w)&0377) == 0177)
17 #define WEXITSTATUS(w) ((w) >> 8) /* same as WRETCODE */
18 #define WTERMSIG(w) ((w) & 0177)
19 #define WSTOPSIG(w) ((w) >> 8)
21 /* These are not defined in POSIX, but are used by our programs. */
25 #define WCOREDUMP(w) (((w)&0200) != 0)
26 #define WSETEXIT(w,status) ((w) = (0 | ((status) << 8)))
27 #define WSETSTOP(w,sig) ((w) = (0177 | ((sig) << 8)))