remove last entry regarding new install target "install-gdbtk"
[deliverable/binutils-gdb.git] / include / wait.h
index 339c2ebe7a824b3fa24a23d163a31c14ef77f55c..fa3c9ccb1d7e1ce8ad0c6c616f7ec78c762082c2 100644 (file)
@@ -1,27 +1,63 @@
+/* Define how to access the int that the wait system call stores.
+   This has been compatible in all Unix systems since time immemorial,
+   but various well-meaning people have defined various different
+   words for the same old bits in the same old int (sometimes claimed
+   to be a struct).  We just know it's an int and we use these macros
+   to access the bits.  */
+
+/* The following macros are defined equivalently to their definitions
+   in POSIX.1.  We fail to define WNOHANG and WUNTRACED, which POSIX.1
+   <sys/wait.h> defines, since our code does not use waitpid().  We
+   also fail to declare wait() and waitpid().  */   
+
+#ifndef        WIFEXITED
+#define WIFEXITED(w)   (((w)&0377) == 0)
+#endif
+
+#ifndef        WIFSIGNALED
+#define WIFSIGNALED(w) (((w)&0377) != 0177 && ((w)&~0377) == 0)
+#endif
+
+#ifndef        WIFSTOPPED
+#ifdef IBM6000
+
+/* Unfortunately, the above comment (about being compatible in all Unix 
+   systems) is not quite correct for AIX, sigh.  And AIX 3.2 can generate
+   status words like 0x57c (sigtrap received after load), and gdb would
+   choke on it. */
+
+#define WIFSTOPPED(w)  ((w)&0x40)
 
-/* Define how to access the structure that the wait system call stores.
-   On many systems, there is a structure defined for this.
-   But on vanilla-ish USG systems there is not.  */
-
-#ifndef HAVE_WAIT_STRUCT
-#define WAITTYPE int
-#define WIFSTOPPED(w) (((w)&0377) == 0177)
-#define WIFSIGNALED(w) (((w)&0377) != 0177 && ((w)&~0377) == 0)
-#define WIFEXITED(w) (((w)&0377) == 0)
-#define WRETCODE(w) ((w) >> 8)
-#define WSTOPSIG(w) ((w) >> 8)
-#define WCOREDUMP(w) (((w)&0200) != 0)
-#define WTERMSIG(w) ((w) & 0177)
-#define WSETEXIT(w, status) ((w) = (status))
-#define WSETSTOP(w,sig)  ((w) = (0177 | ((sig) << 8)))
 #else
-#include <sys/wait.h>
-#define WAITTYPE union wait
-#define WRETCODE(w) (w).w_retcode
-#define WSTOPSIG(w) (w).w_stopsig
-#define WCOREDUMP(w) (w).w_coredump
-#define WTERMSIG(w) (w).w_termsig
-#define WSETEXIT(w, status) ((w).w_status = (status))
-#define WSETSTOP(w,sig)  \
-  ((w).w_stopsig = (sig), (w).w_coredump = 0, (w).w_termsig = 0177)
+#define WIFSTOPPED(w)  (((w)&0377) == 0177)
+#endif
+#endif
+
+#ifndef        WEXITSTATUS
+#define WEXITSTATUS(w) (((w) >> 8) & 0377) /* same as WRETCODE */
+#endif
+
+#ifndef        WTERMSIG
+#define WTERMSIG(w)    ((w) & 0177)
+#endif
+
+#ifndef        WSTOPSIG
+#define WSTOPSIG       WEXITSTATUS
+#endif
+
+/* These are not defined in POSIX, but are used by our programs.  */
+
+#define WAITTYPE       int
+
+#ifndef        WCOREDUMP
+#define WCOREDUMP(w)   (((w)&0200) != 0)
+#endif
+
+#ifndef        WSETEXIT
+#define WSETEXIT(w,status) ((w) = (0 | ((status) << 8)))
 #endif
+
+#ifndef        WSETSTOP
+#define WSETSTOP(w,sig)           ((w) = (0177 | ((sig) << 8)))
+#endif
+
This page took 0.024539 seconds and 4 git commands to generate.