Unverified Commit c3d18915 by Wolfgang Bumiller Committed by Stéphane Graber

mainloop: add lxc_mainloop_add_handler_events

in order to be able to listen for EPOLLPRI Signed-off-by: 's avatarWolfgang Bumiller <w.bumiller@proxmox.com>
parent a62eb3aa
...@@ -59,8 +59,10 @@ int lxc_mainloop(struct lxc_epoll_descr *descr, int timeout_ms) ...@@ -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, int lxc_mainloop_add_handler_events(struct lxc_epoll_descr *descr, int fd,
lxc_mainloop_callback_t callback, void *data) int events,
lxc_mainloop_callback_t callback,
void *data)
{ {
__do_free struct mainloop_handler *handler = NULL; __do_free struct mainloop_handler *handler = NULL;
__do_free struct lxc_list *item = NULL; __do_free struct lxc_list *item = NULL;
...@@ -77,7 +79,7 @@ int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd, ...@@ -77,7 +79,7 @@ int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd,
handler->fd = fd; handler->fd = fd;
handler->data = data; handler->data = data;
ev.events = EPOLLIN; ev.events = events;
ev.data.ptr = handler; ev.data.ptr = handler;
if (epoll_ctl(descr->epfd, EPOLL_CTL_ADD, fd, &ev) < 0) 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, ...@@ -92,6 +94,13 @@ int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd,
return 0; 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) int lxc_mainloop_del_handler(struct lxc_epoll_descr *descr, int fd)
{ {
struct mainloop_handler *handler; struct mainloop_handler *handler;
......
...@@ -22,6 +22,10 @@ typedef int (*lxc_mainloop_callback_t)(int fd, uint32_t event, void *data, ...@@ -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(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, extern int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd,
lxc_mainloop_callback_t callback, lxc_mainloop_callback_t callback,
void *data); void *data);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment