blob: fb6f0ef8da53d3929cdcb2e88e3c22cd148b3fed [file] [log] [blame]
#include <sys/epoll.h>
#include <signal.h>
#include <errno.h>
#include "syscall.h"
int epoll_create(int size) {
return epoll_create1(0);
}
int epoll_create1(int flags) {
int r = __syscall(SYS_epoll_create1, flags);
#ifdef SYS_epoll_create
if (r == -ENOSYS && !flags)
r = __syscall(SYS_epoll_create, 1);
#endif
return __syscall_ret(r);
}
int epoll_ctl(int fd, int op, int fd2, struct epoll_event* ev) {
return syscall(SYS_epoll_ctl, fd, op, fd2, ev);
}
int epoll_pwait(int fd,
struct epoll_event* ev,
int cnt,
int to,
const sigset_t* sigs) {
int r = __syscall(SYS_epoll_pwait, fd, ev, cnt, to, sigs, _NSIG / 8);
#ifdef SYS_epoll_wait
if (r == -ENOSYS && !sigs)
r = __syscall(SYS_epoll_wait, fd, ev, cnt, to);
#endif
return __syscall_ret(r);
}
int epoll_wait(int fd, struct epoll_event* ev, int cnt, int to) {
return epoll_pwait(fd, ev, cnt, to, 0);
}