diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-09-09 16:09:29 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-09-09 16:09:29 -0400 |
commit | 141138c41b5b1cbb74c61690c9b6dbacce4e1983 (patch) | |
tree | 5fd2c59eac9335e3fea3e2401c90ad7c8bae2a3e | |
parent | 3d939be2e3bcd4bfaf5cba27c9122a77a9c67021 (diff) | |
download | musl-141138c41b5b1cbb74c61690c9b6dbacce4e1983.tar.gz musl-141138c41b5b1cbb74c61690c9b6dbacce4e1983.tar.xz musl-141138c41b5b1cbb74c61690c9b6dbacce4e1983.zip |
add linux ppoll syscall wrapper
-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); +} |