X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Fsys%2Fwait.h;h=50c5c709a6beaa5575f9ab56e24bd115abf77c5d;hb=48be5b6313d7b827acf555769e93b389fa9f6307;hp=5e3012bac34a375c8929b3b8843e4093ff4891ab;hpb=419ae6d5c95629d3ebaff6f1880d52cb027ba924;p=musl diff --git a/include/sys/wait.h b/include/sys/wait.h index 5e3012ba..50c5c709 100644 --- a/include/sys/wait.h +++ b/include/sys/wait.h @@ -4,19 +4,28 @@ extern "C" { #endif -#include +#include #define __NEED_pid_t #define __NEED_id_t -#define __NEED_siginfo_t #include -typedef int idtype_t; +typedef enum { + P_ALL = 0, + P_PID = 1, + P_PGID = 2 +} idtype_t; pid_t wait (int *); -int waitid (idtype_t, id_t, siginfo_t *, int); pid_t waitpid (pid_t, int *, int ); +#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ + || defined(_BSD_SOURCE) +#include +int waitid (idtype_t, id_t, siginfo_t *, int); +#endif + #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) #include pid_t wait3 (int *, int, struct rusage *); @@ -31,20 +40,18 @@ pid_t wait4 (pid_t, int *, int, struct rusage *); #define WCONTINUED 8 #define WNOWAIT 0x1000000 -#define P_ALL 0 -#define P_PID 1 -#define P_PGID 2 +#define __WNOTHREAD 0x20000000 +#define __WALL 0x40000000 +#define __WCLONE 0x80000000 -#ifndef WEXITSTATUS #define WEXITSTATUS(s) (((s) & 0xff00) >> 8) #define WTERMSIG(s) ((s) & 0x7f) #define WSTOPSIG(s) WEXITSTATUS(s) #define WCOREDUMP(s) ((s) & 0x80) #define WIFEXITED(s) (!WTERMSIG(s)) -#define WIFSTOPPED(s) (((s) & 0xff) == 0x7f) -#define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0) +#define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00) +#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu) #define WIFCONTINUED(s) ((s) == 0xffff) -#endif #ifdef __cplusplus }