1/* Definitions of flag bits for `waitpid' et al.
2 Copyright (C) 1992-2014 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <http://www.gnu.org/licenses/>. */
18
19#if !defined _SYS_WAIT_H && !defined _STDLIB_H
20# error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
21#endif
22
23
24/* Bits in the third argument to `waitpid'. */
25#define WNOHANG 1 /* Don't block waiting. */
26#define WUNTRACED 2 /* Report status of stopped children. */
27
28/* Bits in the fourth argument to `waitid'. */
29#define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */
30#define WEXITED 4 /* Report dead child. */
31#define WCONTINUED 8 /* Report continued child. */
32#define WNOWAIT 0x01000000 /* Don't reap, just poll status. */
33
34#define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads
35 in this group */
36#define __WALL 0x40000000 /* Wait for any child. */
37#define __WCLONE 0x80000000 /* Wait for cloned process. */
38
39/* The following values are used by the `waitid' function. */
40#if defined __USE_SVID || defined __USE_XOPEN || defined __USE_XOPEN2K8
41# ifndef __ENUM_IDTYPE_T
42# define __ENUM_IDTYPE_T 1
43
44/* The Linux kernel defines these bare, rather than an enum,
45 which causes a conflict if the include order is reversed. */
46# undef P_ALL
47# undef P_PID
48# undef P_PGID
49
50typedef enum
51{
52 P_ALL, /* Wait for any child. */
53 P_PID, /* Wait for specified process. */
54 P_PGID /* Wait for members of process group. */
55} idtype_t;
56# endif
57#endif
58