1 #include <sys/epoll.h>
2 #include <signal.h>
3 #include <errno.h>
4 #include "syscall.h"
5 #ifdef OHOS_FDTRACK_HOOK_ENABLE
6 #include "musl_fdtrack_hook.h"
7 #endif
8
epoll_create(int size)9 int epoll_create(int size)
10 {
11 return epoll_create1(0);
12 }
13
epoll_create1(int flags)14 int epoll_create1(int flags)
15 {
16 int r = __syscall(SYS_epoll_create1, flags);
17 #ifdef SYS_epoll_create
18 if (r==-ENOSYS && !flags) r = __syscall(SYS_epoll_create, 1);
19 #endif
20
21 #ifdef OHOS_FDTRACK_HOOK_ENABLE
22 return FDTRACK_START_HOOK(__syscall_ret(r));
23 #endif
24 return __syscall_ret(r);
25 }
26
epoll_ctl(int fd,int op,int fd2,struct epoll_event * ev)27 int epoll_ctl(int fd, int op, int fd2, struct epoll_event *ev)
28 {
29 return syscall(SYS_epoll_ctl, fd, op, fd2, ev);
30 }
31
epoll_pwait(int fd,struct epoll_event * ev,int cnt,int to,const sigset_t * sigs)32 int epoll_pwait(int fd, struct epoll_event *ev, int cnt, int to, const sigset_t *sigs)
33 {
34 int r = __syscall_cp(SYS_epoll_pwait, fd, ev, cnt, to, sigs, _NSIG/8);
35 #ifdef SYS_epoll_wait
36 if (r==-ENOSYS && !sigs) r = __syscall_cp(SYS_epoll_wait, fd, ev, cnt, to);
37 #endif
38 return __syscall_ret(r);
39 }
40
epoll_wait(int fd,struct epoll_event * ev,int cnt,int to)41 int epoll_wait(int fd, struct epoll_event *ev, int cnt, int to)
42 {
43 return epoll_pwait(fd, ev, cnt, to, 0);
44 }
45