blob: 76648a5d3a5ece0c4d98fa4017fce78528275d55 [file] [log] [blame]
George Kulakowski17e3b042016-02-18 15:59:50 -08001#ifndef _SYS_WAIT_H
2#define _SYS_WAIT_H
Viet-Trung Luu96b05c12016-01-11 11:26:36 -08003#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
George Kulakowski17e3b042016-02-18 15:59:50 -080013typedef enum { P_ALL = 0, P_PID = 1, P_PGID = 2 } idtype_t;
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080014
George Kulakowski17e3b042016-02-18 15:59:50 -080015pid_t wait(int*);
16pid_t waitpid(pid_t, int*, int);
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080017
George Kulakowski17e3b042016-02-18 15:59:50 -080018#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || \
19 defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080020#include <signal.h>
George Kulakowski17e3b042016-02-18 15:59:50 -080021int waitid(idtype_t, id_t, siginfo_t*, int);
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080022#endif
23
24#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
25#include <sys/resource.h>
George Kulakowski17e3b042016-02-18 15:59:50 -080026pid_t wait3(int*, int, struct rusage*);
27pid_t wait4(pid_t, int*, int, struct rusage*);
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080028#endif
29
George Kulakowski17e3b042016-02-18 15:59:50 -080030#define WNOHANG 1
31#define WUNTRACED 2
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080032
George Kulakowski17e3b042016-02-18 15:59:50 -080033#define WSTOPPED 2
34#define WEXITED 4
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080035#define WCONTINUED 8
George Kulakowski17e3b042016-02-18 15:59:50 -080036#define WNOWAIT 0x1000000
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080037
38#define __WNOTHREAD 0x20000000
George Kulakowski17e3b042016-02-18 15:59:50 -080039#define __WALL 0x40000000
40#define __WCLONE 0x80000000
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080041
George Kulakowski17e3b042016-02-18 15:59:50 -080042#define WEXITSTATUS(s) (((s)&0xff00) >> 8)
43#define WTERMSIG(s) ((s)&0x7f)
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080044#define WSTOPSIG(s) WEXITSTATUS(s)
George Kulakowski17e3b042016-02-18 15:59:50 -080045#define WCOREDUMP(s) ((s)&0x80)
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080046#define WIFEXITED(s) (!WTERMSIG(s))
George Kulakowski17e3b042016-02-18 15:59:50 -080047#define WIFSTOPPED(s) ((short)((((s)&0xffff) * 0x10001) >> 8) > 0x7f00)
48#define WIFSIGNALED(s) (((s)&0xffff) - 1U < 0xffu)
Viet-Trung Luu96b05c12016-01-11 11:26:36 -080049#define WIFCONTINUED(s) ((s) == 0xffff)
50
51#ifdef __cplusplus
52}
53#endif
54#endif