#include "poll.h" static void event_callback(struct ev_loop *loop, ev_io *w, s32 revents) { (void)loop; struct nn_poll *poll = (struct nn_poll *)w->data; poll->callback(poll->userdata, revents); } void nn_poll_init(struct nn_poll *poll, void (*callback)(void *, s32 revents), void *userdata) { poll->callback = callback; poll->userdata = userdata; poll->event.data = poll; ev_init_n(&poll->event, event_callback); } void nn_poll_set(struct nn_poll *poll, s32 fd, s32 events) { ev_io_set(&poll->event, fd, events); } void nn_poll_start(struct nn_poll *poll, struct nn_event_loop *loop) { poll->loop = loop; ev_io_start(poll->loop->ev, &poll->event); } void nn_poll_stop(struct nn_poll *poll) { ev_io_stop(poll->loop->ev, &poll->event); }