1/* 2 * Copyright 2004-2011, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _SYS_WAIT_H 6#define _SYS_WAIT_H 7 8 9#include <sys/types.h> 10#include <signal.h> 11 12 13/* waitpid()/waitid() options */ 14#define WNOHANG 0x01 15#define WUNTRACED 0x02 16#define WCONTINUED 0x04 17#define WEXITED 0x08 18#define WSTOPPED 0x10 19#define WNOWAIT 0x20 20 21/* macros to interprete wait()/waitpid() status */ 22#define WIFEXITED(value) (((value) & ~0xff) == 0) 23#define WEXITSTATUS(value) ((value) & 0xff) 24#define WIFSIGNALED(value) ((((value) >> 8) & 0xff) != 0) 25#define WTERMSIG(value) (((value) >> 8) & 0xff) 26#define WIFSTOPPED(value) ((((value) >> 16) & 0xff) != 0) 27#define WSTOPSIG(value) (((value) >> 16) & 0xff) 28#define WIFCORED(value) ((value) & 0x10000) 29#define WIFCONTINUED(value) ((value) & 0x20000) 30 31/* ID types for waitid() */ 32typedef enum { 33 P_ALL, /* wait for any children, ignore ID */ 34 P_PID, /* wait for the child whose process ID matches */ 35 P_PGID /* wait for any child whose process group ID matches */ 36} idtype_t; 37 38 39#ifdef __cplusplus 40extern "C" { 41#endif 42 43extern pid_t wait(int *_status); 44extern pid_t waitpid(pid_t pid, int *_status, int options); 45extern int waitid(idtype_t idType, id_t id, siginfo_t *info, int options); 46 47#ifdef __cplusplus 48} 49#endif 50 51#endif /* _SYS_WAIT_H */ 52