[__USE_SVID] (key_t): New type.
[kopensolaris-gnu/glibc.git] / posix / sys / wait.h
index a871738..b7800d7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -47,19 +47,34 @@ __BEGIN_DECLS
 #endif
 
 /* This is the type of the argument to `wait'.
-   With GCC 2, the funky union causes redeclarations with either `int *' or
-   `union wait *' to be allowed. */
 
-#if    !defined (__GNUC__) || __GNUC__ < 2
-#define        __WAIT_STATUS   __ptr_t
+   NOTE: Since this functionality is volatile, I'm disabling the use of it for
+   now.
+
+With GCC 2.6.1 and later, the funky union causes redeclarations with either
+   `int *' or `union wait *' to be allowed without complaint.
+   __WAIT_STATUS_DEFN is the type used in the actual function
+   definitions. */
+
+#if    (!defined (__GNUC__) || __GNUC__ < 2 || \
+        /*(__GNUC__ == 2 && __GNUC_MINOR__ < 6)*/ 1)
+#define        __WAIT_STATUS           __ptr_t
+#define        __WAIT_STATUS_DEFN      __ptr_t
 #else
-#define        __WAIT_STATUS   union { union wait *__unionptr; int *__intptr; }
+/* This works in GCC 2.6.1 and later.  */
+typedef union
+  {
+    union wait *__uptr;
+    int *__iptr;
+  } __WAIT_STATUS __attribute__ ((transparent_union));
+#define        __WAIT_STATUS_DEFN      int *
 #endif
 
 #else /* Don't use BSD.  */
 
 #define        __WAIT_INT(status)      (status)
 #define        __WAIT_STATUS           int *
+#define        __WAIT_STATUS_DEFN      int *
 
 #endif /* Use BSD.  */
 
@@ -74,6 +89,7 @@ __BEGIN_DECLS
 #define        WIFSTOPPED(status)      __WIFSTOPPED(__WAIT_INT(status))
 
 #ifdef __USE_BSD
+#define        WCOREFLAG               __WCOREFLAG
 #define        WCOREDUMP(status)       __WCOREDUMP(__WAIT_INT(status))
 #define        W_EXITCODE(ret, sig)    __W_EXITCODE(ret, sig)
 #define        W_STOPCODE(sig)         __W_STOPCODE(sig)