diff options
author | Richard M. Stallman <rms@gnu.org> | 1993-08-14 09:38:56 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1993-08-14 09:38:56 +0000 |
commit | 33a7a9ca7713171c17004f42e88fa2ee5d57c37d (patch) | |
tree | 3a0868b303681fc65d6f25477446334f996226f0 /src/syswait.h | |
parent | ccdf73dd28823dec422e97e689d399018e14c8e2 (diff) | |
download | emacs-33a7a9ca7713171c17004f42e88fa2ee5d57c37d.tar.gz |
entered into RCS
Diffstat (limited to 'src/syswait.h')
-rw-r--r-- | src/syswait.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/syswait.h b/src/syswait.h new file mode 100644 index 00000000000..41214ea54cf --- /dev/null +++ b/src/syswait.h @@ -0,0 +1,87 @@ +/* Define wait system call interface for Emacs. + Copyright (C) 1993 Free Software Foundation, Inc. + +This file is part of GNU Emacs. + +GNU Emacs is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Emacs is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Emacs; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* Define 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 VMS +#ifndef WAITTYPE +#if (!defined (BSD) && !defined (UNIPLUS) && !defined (STRIDE) && !(defined (HPUX) && !defined (NOMULTIPLEJOBS)) && !defined (HAVE_WAIT_HEADER)) || defined (LINUX) +#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 WTERMSIG(w) (w & 0377) +#ifndef WCOREDUMP +#define WCOREDUMP(w) ((w&0200) != 0) +#endif +#else +#ifdef BSD4_1 +#include <wait.h> +#else +#include <sys/wait.h> +#endif /* not BSD 4.1 */ + +#define WAITTYPE union wait +#define WRETCODE(w) w.w_retcode +#define WCOREDUMP(w) w.w_coredump + +#ifdef HPUX +/* HPUX version 7 has broken definitions of these. */ +#undef WTERMSIG +#undef WSTOPSIG +#undef WIFSTOPPED +#undef WIFSIGNALED +#undef WIFEXITED +#endif + +#ifndef WTERMSIG +#define WTERMSIG(w) w.w_termsig +#endif +#ifndef WSTOPSIG +#define WSTOPSIG(w) w.w_stopsig +#endif +#ifndef WIFSTOPPED +#define WIFSTOPPED(w) (WTERMSIG (w) == 0177) +#endif +#ifndef WIFSIGNALED +#define WIFSIGNALED(w) (WTERMSIG (w) != 0177 && (WSTOPSIG (w)) == 0) +#endif +#ifndef WIFEXITED +#define WIFEXITED(w) (WTERMSIG (w) == 0) +#endif +#endif /* BSD or UNIPLUS or STRIDE */ +#endif /* no WAITTYPE */ +#else /* VMS */ +#define WAITTYPE int +#define WIFSTOPPED(w) 0 +#define WIFSIGNALED(w) 0 +#define WIFEXITED(w) ((w) != -1) +#define WRETCODE(w) (w) +#define WSTOPSIG(w) (w) +#define WCOREDUMP(w) 0 +#define WTERMSIG(w) (w) +#include <ssdef.h> +#include <iodef.h> +#include <clidef.h> +#include "vmsproc.h" +#endif /* VMS */ |