From 141138c41b5b1cbb74c61690c9b6dbacce4e1983 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 9 Sep 2012 16:09:29 -0400 Subject: add linux ppoll syscall wrapper --- include/poll.h | 10 ++++++++++ src/linux/ppoll.c | 9 +++++++++ 2 files changed, 19 insertions(+) create mode 100644 src/linux/ppoll.c 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 + #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 +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 +#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); +} -- cgit v1.2.1