1 /* 2 * Copyright (c) 1989 Jan-Simon Pendry 3 * Copyright (c) 1989 Imperial College of Science, Technology & Medicine 4 * Copyright (c) 1989 The Regents of the University of California. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to Berkeley by 8 * Jan-Simon Pendry at Imperial College, London. 9 * 10 * %sccs.include.redist.c% 11 * 12 * @(#)uwait.h 5.4 (Berkeley) 02/09/92 13 * 14 * $Id: uwait.h,v 5.2.2.1 1992/02/09 15:10:01 jsp beta $ 15 * 16 */ 17 18 #if defined(mc68k) || defined(mc68000) || defined(mc68020) || defined(sparc) || defined(hp9000s300) || defined(hp9000s800) 19 #define BITS_BIGENDIAN 20 #endif 21 #if defined(vax) || defined(i386) 22 #define BITS_LITTLENDIAN 23 #endif 24 #if !defined BITS_BIGENDIAN && !defined BITS_LITTLENDIAN 25 #error Do not know my byte ordering 26 #endif 27 28 /* 29 * Structure of the information in the first word returned by both 30 * wait and wait3. If w_stopval==WSTOPPED, then the second structure 31 * describes the information returned, else the first. See WUNTRACED below. 32 */ 33 union wait { 34 int w_status; /* used in syscall */ 35 /* 36 * Terminated process status. 37 */ 38 struct { 39 #ifdef BITS_LITTLENDIAN 40 unsigned short w_Termsig:7; /* termination signal */ 41 unsigned short w_Coredump:1; /* core dump indicator */ 42 unsigned short w_Retcode:8; /* exit code if w_termsig==0 */ 43 #endif 44 #ifdef BITS_BIGENDIAN 45 unsigned short w_Fill1:16; /* high 16 bits unused */ 46 unsigned short w_Retcode:8; /* exit code if w_termsig==0 */ 47 unsigned short w_Coredump:1; /* core dump indicator */ 48 unsigned short w_Termsig:7; /* termination signal */ 49 #endif 50 } w_U; 51 }; 52 #define w_termsig w_U.w_Termsig 53 #define w_coredump w_U.w_Coredump 54 #define w_retcode w_U.w_Retcode 55 56 #define WIFSIGNALED(x) ((x).w_termsig != 0) 57 #define WIFEXITED(x) ((x).w_termsig == 0) 58