1/* Definitions of flag bits for `waitpid' et al.
2 Copyright (C) 1992-2020 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 <https://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#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
30# define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */
31# define WEXITED 4 /* Report dead child. */
32# define WCONTINUED 8 /* Report continued child. */
33# define WNOWAIT 0x01000000 /* Don't reap, just poll status. */
34#endif
35
36#define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads
37 in this group */
38#define __WALL 0x40000000 /* Wait for any child. */
39#define __WCLONE 0x80000000 /* Wait for cloned process. */
40
41/* The following values are used by the `waitid' function. */
42#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
43# ifndef __ENUM_IDTYPE_T
44# define __ENUM_IDTYPE_T 1
45
46/* The Linux kernel defines these bare, rather than an enum,
47 which causes a conflict if the include order is reversed. */
48# undef P_ALL
49# undef P_PID
50# undef P_PGID
51
52typedef enum
53{
54 P_ALL, /* Wait for any child. */
55 P_PID, /* Wait for specified process. */
56 P_PGID /* Wait for members of process group. */
57} idtype_t;
58# endif
59#endif
60