From: Wolfgang Bumiller Date: Fri, 15 May 2020 13:06:38 +0000 (+0200) Subject: mainloop: add lxc_mainloop_add_handler_events X-Git-Tag: lxc-5.0.0~435^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d1c51d19e4db3ea0ae2f7b1dfc9024e3e6b6d4d;p=thirdparty%2Flxc.git mainloop: add lxc_mainloop_add_handler_events in order to be able to listen for EPOLLPRI Signed-off-by: Wolfgang Bumiller --- diff --git a/src/lxc/mainloop.c b/src/lxc/mainloop.c index 6d4c5935a..d5ae2a67a 100644 --- a/src/lxc/mainloop.c +++ b/src/lxc/mainloop.c @@ -59,8 +59,10 @@ int lxc_mainloop(struct lxc_epoll_descr *descr, int timeout_ms) } } -int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd, - lxc_mainloop_callback_t callback, void *data) +int lxc_mainloop_add_handler_events(struct lxc_epoll_descr *descr, int fd, + int events, + lxc_mainloop_callback_t callback, + void *data) { __do_free struct mainloop_handler *handler = NULL; __do_free struct lxc_list *item = NULL; @@ -77,7 +79,7 @@ int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd, handler->fd = fd; handler->data = data; - ev.events = EPOLLIN; + ev.events = events; ev.data.ptr = handler; if (epoll_ctl(descr->epfd, EPOLL_CTL_ADD, fd, &ev) < 0) @@ -92,6 +94,13 @@ int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd, return 0; } +int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd, + lxc_mainloop_callback_t callback, void *data) +{ + return lxc_mainloop_add_handler_events(descr, fd, EPOLLIN, callback, + data); +} + int lxc_mainloop_del_handler(struct lxc_epoll_descr *descr, int fd) { struct mainloop_handler *handler; diff --git a/src/lxc/mainloop.h b/src/lxc/mainloop.h index 8afac60d3..e6ab9a6d9 100644 --- a/src/lxc/mainloop.h +++ b/src/lxc/mainloop.h @@ -22,6 +22,10 @@ typedef int (*lxc_mainloop_callback_t)(int fd, uint32_t event, void *data, extern int lxc_mainloop(struct lxc_epoll_descr *descr, int timeout_ms); +extern int lxc_mainloop_add_handler_events(struct lxc_epoll_descr *descr, + int fd, int events, + lxc_mainloop_callback_t callback, + void *data); extern int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd, lxc_mainloop_callback_t callback, void *data);