[__USE_SVID] (key_t): New type.
[kopensolaris-gnu/glibc.git] / posix / sys / wait.h
index a4968c2..b7800d7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1993 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
@@ -46,18 +46,27 @@ __BEGIN_DECLS
 #define        __WAIT_INT(status)      (*(int *) &(status))
 #endif
 
-/* This is the type of the argument to `wait'.  With GCC 2.4 and later, the
-   funky union causes redeclarations with either `int *' or `union wait *'
-   to be allowed without complaint.  (__GNUC_MINOR__ is in fact only
-   defined in later versions, after 2.5.0.)  __WAIT_STATUS_DEFN is the type
-   used in the actual function definitions.  */
+/* This is the type of the argument to `wait'.
+
+   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__ < 4))
+        /*(__GNUC__ == 2 && __GNUC_MINOR__ < 6)*/ 1)
 #define        __WAIT_STATUS           __ptr_t
 #define        __WAIT_STATUS_DEFN      __ptr_t
 #else
-#define        __WAIT_STATUS           union { union wait *__uptr; int *__iptr; }
+/* 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
 
@@ -80,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)