diff options
| -rw-r--r-- | include/poll.h | 10 | ||||
| -rw-r--r-- | src/linux/ppoll.c | 9 | 
2 files changed, 19 insertions, 0 deletions
diff --git a/include/poll.h b/include/poll.h index 36ef7fee..ace3f3aa 100644 --- a/include/poll.h +++ b/include/poll.h @@ -5,6 +5,8 @@  extern "C" {  #endif +#incluce <features.h> +  #define POLLIN     0x001  #define POLLPRI    0x002  #define POLLOUT    0x004 @@ -28,6 +30,14 @@ struct pollfd  int poll (struct pollfd *, nfds_t, int); +#ifdef _GNU_SOURCE +#define __NEED_time_t +#define __NEED_struct_timespec +#define __NEED_sigset_t +#include <bits/alltypes.h> +int ppoll(struct pollfd *, nfds_t, const struct timespec *, const sigset_t *); +#endif +  #ifdef __cplusplus  }  #endif diff --git a/src/linux/ppoll.c b/src/linux/ppoll.c new file mode 100644 index 00000000..8f4aab9b --- /dev/null +++ b/src/linux/ppoll.c @@ -0,0 +1,9 @@ +#define _GNU_SOURCE +#include <poll.h> +#include "syscall.h" + +int ppoll(struct pollfd *fds, nfds_t n, const struct timespec *to, const sigset_t *mask) +{ +	struct timespec tmp = *to; +	return syscall_cp(SYS_ppoll, fds, n, &tmp, mask); +}  | 
