From 288ff1988f0b56a313b45ba46bb7e15477c0a971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 7 Jul 2004 12:47:00 +0000 Subject: [PATCH] Added new BeOS compatible wait.h header. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8343 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/posix/sys/wait.h | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 headers/posix/sys/wait.h diff --git a/headers/posix/sys/wait.h b/headers/posix/sys/wait.h new file mode 100644 index 0000000000..80685bfb5b --- /dev/null +++ b/headers/posix/sys/wait.h @@ -0,0 +1,50 @@ +#ifndef _SYS_WAIT_H +#define _SYS_WAIT_H +/* +** Distributed under the terms of the OpenBeOS License. +*/ + + +#include +#include + + +/* waitpid()/waitid() options */ +#define WNOHANG 0x01 +#define WUNTRACED 0x02 +#define WCONTINUED 0x04 +#define WEXITED 0x08 +#define WSTOPPED 0x10 +#define WNOWAIT 0x20 + +/* macros to interprete wait()/waitpid() status */ +#define WIFEXITED(value) (((value) & ~0xff) == 0) +#define WEXITSTATUS(value) ((value) & 0xff) +#define WIFSIGNALED(value) ((((value) >> 8) & 0xff) != 0) +#define WTERMSIG(value) (((value) >> 8) & 0xff) +#define WIFSTOPPED(value) ((((value) >> 16) & 0xff) != 0) +#define WSTOPSIG(value) (((value) >> 16) & 0xff) +#define WIFCORED(value) ((value) & 0x10000) +#define WIFCONTINUED(value) ((value) & 0x20000) + +/* ID types for waitid() */ +typedef enum { + P_ALL, /* wait for any children, ignore ID */ + P_PID, /* wait for the child whose process ID matches */ + P_PGID /* wait for any child whose process group ID matches */ +} idtype_t; + + +#ifdef __cplusplus +extern "C" { +#endif + +extern pid_t wait(int *_status); +extern pid_t waitpid(pid_t pid, int *_status, int options); +extern int waitid(idtype_t idType, id_t id, siginfo_t *info, int options); + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_WAIT_H */