summaryrefslogtreecommitdiffstats
path: root/contrib/tcsh/tc.wait.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tcsh/tc.wait.h')
-rw-r--r--contrib/tcsh/tc.wait.h159
1 files changed, 159 insertions, 0 deletions
diff --git a/contrib/tcsh/tc.wait.h b/contrib/tcsh/tc.wait.h
new file mode 100644
index 0000000..df93c06
--- /dev/null
+++ b/contrib/tcsh/tc.wait.h
@@ -0,0 +1,159 @@
+/* $Header: /src/pub/tcsh/tc.wait.h,v 3.10 1997/10/27 22:44:39 christos Exp $ */
+/*
+ * tc.wait.h: <sys/wait.h> for machines that don't have it or have it and
+ * is incorrect.
+ */
+/*-
+ * Copyright (c) 1980, 1991 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _h_tc_wait
+#define _h_tc_wait
+
+/*
+ * a little complicated #include <sys/wait.h>! :-(
+ * We try to use the system's wait.h when we can...
+ */
+
+#if SYSVREL > 0 && !defined(linux)
+# ifdef hpux
+# ifndef __hpux
+# define NEEDwait
+# else
+# ifndef POSIX
+# define _BSD
+# endif
+# ifndef _CLASSIC_POSIX_TYPES
+# define _CLASSIC_POSIX_TYPES
+# endif
+# include <sys/wait.h> /* 7.0 fixed it again */
+# endif /* __hpux */
+# else /* hpux */
+# if (defined(OREO) || defined(IRIS4D) || defined(POSIX)) && !defined(_VMS_POSIX)
+# include <sys/wait.h>
+# else /* OREO || IRIS4D || POSIX */
+# define NEEDwait
+# endif /* OREO || IRIS4D || POSIX */
+# endif /* hpux */
+#else /* SYSVREL == 0 || linux */
+# ifdef _MINIX
+# undef NEEDwait
+# include "mi.wait.h"
+# else
+# ifndef WINNT
+# include <sys/wait.h>
+# endif /* WINNT */
+# endif /* _MINIX */
+#endif /* SYSVREL == 0 || linux */
+
+#ifdef NEEDwait
+/*
+ * This wait is for big-endians and little endians
+ */
+union wait {
+ int w_status;
+# ifdef _SEQUENT_
+ struct {
+ unsigned short w_Termsig:7;
+ unsigned short w_Coredump:1;
+ unsigned short w_Retcode:8;
+ } w_T;
+ struct {
+ unsigned short w_Stopval:8;
+ unsigned short w_Stopsig:8;
+ } w_S;
+};
+
+# define w_termsig w_T.w_Termsig
+# define w_coredump w_T.w_Coredump
+# define w_retcode w_T.w_Retcode
+# define w_stopval w_S.w_Stopval
+# define w_stopsig w_S.w_Stopsig
+# else /* _SEQUENT_ */
+# if defined(vax) || defined(i386) || defined(_I386)
+ union {
+ struct {
+ unsigned int w_Termsig:7;
+ unsigned int w_Coredump:1;
+ unsigned int w_Retcode:8;
+ unsigned int w_Dummy:16;
+ } w_T;
+ struct {
+ unsigned int w_Stopval:8;
+ unsigned int w_Stopsig:8;
+ unsigned int w_Dummy:16;
+ } w_S;
+ } w_P;
+# else /* mc68000 || sparc || ??? */
+# if defined(_CRAY) || defined(ANY_OTHER_64BIT_MACHINE)
+# define DUMMY_BITS 48
+# else /* _CRAY */
+# define DUMMY_BITS 16
+# endif /* _CRAY */
+ union {
+ struct {
+ unsigned int w_Dummy:DUMMY_BITS;
+ unsigned int w_Retcode:8;
+ unsigned int w_Coredump:1;
+ unsigned int w_Termsig:7;
+ } w_T;
+ struct {
+ unsigned int w_Dummy:DUMMY_BITS;
+ unsigned int w_Stopsig:8;
+ unsigned int w_Stopval:8;
+ } w_S;
+ } w_P;
+# endif /* vax || i386 || _I386 */
+};
+
+# define w_termsig w_P.w_T.w_Termsig
+# define w_coredump w_P.w_T.w_Coredump
+# define w_retcode w_P.w_T.w_Retcode
+# define w_stopval w_P.w_S.w_Stopval
+# define w_stopsig w_P.w_S.w_Stopsig
+# endif /* _SEQUENT_ */
+
+
+# ifndef WNOHANG
+# define WNOHANG 1 /* dont hang in wait */
+# endif
+
+# ifndef WUNTRACED
+# define WUNTRACED 2 /* tell about stopped, untraced children */
+# endif
+
+# define WSTOPPED 0177
+# define WIFSTOPPED(x) ((x).w_stopval == WSTOPPED)
+# define WIFSIGNALED(x) (((x).w_stopval != WSTOPPED) && ((x).w_termsig != 0))
+
+#endif /* NEEDwait */
+
+#endif /* _h_tc_wait */
OpenPOWER on IntegriCloud