support linux kernel apis (new archs) with old syscalls removed
[musl] / src / select / poll.c
1 #include <poll.h>
2 #include <time.h>
3 #include <signal.h>
4 #include "syscall.h"
5 #include "libc.h"
6
7 int poll(struct pollfd *fds, nfds_t n, int timeout)
8 {
9 #ifdef SYS_poll
10         return syscall_cp(SYS_poll, fds, n, timeout);
11 #else
12         return syscall_cp(SYS_ppoll, fds, n, timeout>=0 ?
13                 &((struct timespec){ .tv_sec = timeout/1000,
14                 .tv_nsec = timeout%1000*1000000 }) : 0, 0, _NSIG/8);
15 #endif
16 }