xref: /freebsd/contrib/tcsh/mi.wait.h (revision c80476e4)
1c80476e4SDavid E. O'Brien /* The <sys/wait.h> header contains macros related to wait(). The value
2c80476e4SDavid E. O'Brien  * returned by wait() and waitpid() depends on whether the process
3c80476e4SDavid E. O'Brien  * terminated by an exit() call, was killed by a signal, or was stopped
4c80476e4SDavid E. O'Brien  * due to job control, as follows:
5c80476e4SDavid E. O'Brien  *
6c80476e4SDavid E. O'Brien  *				 High byte   Low byte
7c80476e4SDavid E. O'Brien  *				+---------------------+
8c80476e4SDavid E. O'Brien  *	exit(status)		|  status  |    0     |
9c80476e4SDavid E. O'Brien  *				+---------------------+
10c80476e4SDavid E. O'Brien  *      killed by signal	|    0     |  signal  |
11c80476e4SDavid E. O'Brien  *				+---------------------+
12c80476e4SDavid E. O'Brien  *	stopped (job control)	|  signal  |   0177   |
13c80476e4SDavid E. O'Brien  *				+---------------------+
14c80476e4SDavid E. O'Brien  */
15c80476e4SDavid E. O'Brien 
16c80476e4SDavid E. O'Brien #ifndef _WAIT_H
17c80476e4SDavid E. O'Brien #define _WAIT_H
18c80476e4SDavid E. O'Brien 
19c80476e4SDavid E. O'Brien #ifndef _TYPES_H		/* not quite right */
20c80476e4SDavid E. O'Brien #include <sys/types.h>
21c80476e4SDavid E. O'Brien #endif
22c80476e4SDavid E. O'Brien 
23c80476e4SDavid E. O'Brien #define __LOW(v)	((v) & 0377)
24c80476e4SDavid E. O'Brien #define __HIGH(v)	(((v) >> 8) & 0377)
25c80476e4SDavid E. O'Brien 
26c80476e4SDavid E. O'Brien #define WNOHANG         1	/* do not wait for child to exit */
27c80476e4SDavid E. O'Brien #define WUNTRACED       2	/* for job control; not implemented */
28c80476e4SDavid E. O'Brien 
29c80476e4SDavid E. O'Brien #define WIFEXITED(s)	(__LOW(s) == 0)		    /* normal exit */
30c80476e4SDavid E. O'Brien #define WEXITSTATUS(s)	(__HIGH(s))			    /* exit status */
31c80476e4SDavid E. O'Brien #define WTERMSIG(s)	(__LOW(s) & 0177)		    /* sig value */
32c80476e4SDavid E. O'Brien #define WIFSIGNALED(s)	((((unsigned int)(s)-1) & 0xFFFF) < 0xFF) /* signaled */
33c80476e4SDavid E. O'Brien #define WIFSTOPPED(s)	(__LOW(s) == 0177)		    /* stopped */
34c80476e4SDavid E. O'Brien #define WSTOPSIG(s)	(__HIGH(s) & 0377)		    /* stop signal */
35c80476e4SDavid E. O'Brien 
36c80476e4SDavid E. O'Brien /* Function Prototypes. */
37c80476e4SDavid E. O'Brien #ifndef _ANSI_H
38c80476e4SDavid E. O'Brien #include <ansi.h>
39c80476e4SDavid E. O'Brien #endif
40c80476e4SDavid E. O'Brien 
41c80476e4SDavid E. O'Brien _PROTOTYPE( pid_t wait, (int *_stat_loc)			   	   );
42c80476e4SDavid E. O'Brien _PROTOTYPE( pid_t waitpid, (pid_t _pid, int *_stat_loc, int _options)	   );
43c80476e4SDavid E. O'Brien 
44c80476e4SDavid E. O'Brien #endif /* _WAIT_H */
45