xref: /original-bsd/usr.sbin/amd/include/uwait.h (revision c3e32dec)
1 /*
2  * Copyright (c) 1989 Jan-Simon Pendry
3  * Copyright (c) 1989 Imperial College of Science, Technology & Medicine
4  * Copyright (c) 1989, 1993
5  *	The Regents of the University of California.  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	8.1 (Berkeley) 06/06/93
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