OLD | NEW |
1 #include <poll.h> | 1 #include <poll.h> |
2 #include <time.h> | 2 #include <time.h> |
3 #include <signal.h> | 3 #include <signal.h> |
4 #include "syscall.h" | 4 #include "syscall.h" |
5 #include "libc.h" | 5 #include "libc.h" |
6 | 6 |
7 int poll(struct pollfd *fds, nfds_t n, int timeout) | 7 int poll(struct pollfd* fds, nfds_t n, int timeout) { |
8 { | |
9 #ifdef SYS_poll | 8 #ifdef SYS_poll |
10 » return syscall_cp(SYS_poll, fds, n, timeout); | 9 return syscall_cp(SYS_poll, fds, n, timeout); |
11 #else | 10 #else |
12 » return syscall_cp(SYS_ppoll, fds, n, timeout>=0 ? | 11 return syscall_cp( |
13 » » &((struct timespec){ .tv_sec = timeout/1000, | 12 SYS_ppoll, fds, n, |
14 » » .tv_nsec = timeout%1000*1000000 }) : 0, 0, _NSIG/8); | 13 timeout >= 0 |
| 14 ? &((struct timespec){.tv_sec = timeout / 1000, |
| 15 .tv_nsec = timeout % 1000 * 1000000}) |
| 16 : 0, |
| 17 0, _NSIG / 8); |
15 #endif | 18 #endif |
16 } | 19 } |
OLD | NEW |