1#pragma once 2 3#ifdef __cplusplus 4extern "C" { 5#endif 6 7#include <features.h> 8 9#define __NEED_pid_t 10#define __NEED_id_t 11#include <bits/alltypes.h> 12 13typedef enum { P_ALL = 0, 14 P_PID = 1, 15 P_PGID = 2 } idtype_t; 16 17pid_t wait(int*); 18pid_t waitpid(pid_t, int*, int); 19 20#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ 21 defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 22#include <signal.h> 23int waitid(idtype_t, id_t, siginfo_t*, int); 24#endif 25 26#define WNOHANG 1 27#define WUNTRACED 2 28 29#define WSTOPPED 2 30#define WEXITED 4 31#define WCONTINUED 8 32#define WNOWAIT 0x1000000 33 34#define WEXITSTATUS(s) (((s)&0xff00) >> 8) 35#define WTERMSIG(s) ((s)&0x7f) 36#define WSTOPSIG(s) WEXITSTATUS(s) 37#define WCOREDUMP(s) ((s)&0x80) 38#define WIFEXITED(s) (!WTERMSIG(s)) 39#define WIFSTOPPED(s) ((short)((((s)&0xffff) * 0x10001) >> 8) > 0x7f00) 40#define WIFSIGNALED(s) (((s)&0xffff) - 1U < 0xffu) 41#define WIFCONTINUED(s) ((s) == 0xffff) 42 43#ifdef __cplusplus 44} 45#endif 46