X-Git-Url: http://git.madism.org/?a=blobdiff_plain;ds=sidebyside;f=epoll.c;h=e3df03e154ba4a8fd1bfeec0237be6c0495066fd;hb=8a872b1a9ec12dd44292603137c41f1b29b9f756;hp=3d16789feb69b63b1af7fd336991f9220e39f94a;hpb=61c2720436d78e1ebd68def62cbdf67c5c21a7e9;p=apps%2Fpfixtools.git diff --git a/epoll.c b/epoll.c index 3d16789..e3df03e 100644 --- a/epoll.c +++ b/epoll.c @@ -35,7 +35,7 @@ #include "epoll.h" -int epollfd = -1; +static int epollfd = -1; static int epoll_initialize(void) { @@ -50,3 +50,26 @@ static void epoll_shutdown(void) module_init(epoll_initialize); module_exit(epoll_shutdown); + +void epoll_register(int fd, uint32_t events, void *ptr) +{ + struct epoll_event evt = { .events = events, .data.ptr = ptr }; + if (epoll_ctl(epollfd, EPOLL_CTL_ADD, fd, &evt)) { + UNIXERR("epoll_ctl"); + abort(); + } +} + +void epoll_modify(int fd, uint32_t events, void *ptr) +{ + struct epoll_event evt = { .events = events, .data.ptr = ptr }; + if (epoll_ctl(epollfd, EPOLL_CTL_MOD, fd, &evt)) { + UNIXERR("epoll_ctl"); + abort(); + } +} + +int epoll_select(struct epoll_event *events, int maxevents, int timeout) +{ + return epoll_wait(epollfd, events, maxevents, timeout); +}