#include <poll.h> | |
#include <time.h> | |
#include <signal.h> | |
#include "syscall.h" | |
#include "libc.h" | |
int poll(struct pollfd* fds, nfds_t n, int timeout) { | |
#ifdef SYS_poll | |
return syscall_cp(SYS_poll, fds, n, timeout); | |
#else | |
return syscall_cp( | |
SYS_ppoll, fds, n, | |
timeout >= 0 | |
? &((struct timespec){.tv_sec = timeout / 1000, | |
.tv_nsec = timeout % 1000 * 1000000}) | |
: 0, | |
0, _NSIG / 8); | |
#endif | |
} |