Lines Matching refs:kevent
74 static int epoll_to_kevent(int, int, struct epoll_event *, struct kevent *,
76 static void kevent_to_epoll(struct kevent *, struct epoll_event *);
77 static int epoll_kev_put_events(void *, struct kevent *, struct kevent *,
79 static int epoll_kev_fetch_changes(void *, const struct kevent *,
80 struct kevent *, size_t, int);
114 * Structure converting function from epoll to kevent.
118 struct kevent *kevent, int *nkevents)
135 EV_SET(kevent, fd, EVFILT_READ, kev_flags, 0, 0, 0);
136 kevent->kext_data = l_event->data;
137 kevent->kext_epfd = epfd;
138 kevent->kext_fd = fd;
139 ++kevent;
143 EV_SET(kevent, fd, EVFILT_WRITE, kev_flags, 0, 0, 0);
144 kevent->kext_data = l_event->data;
145 kevent->kext_epfd = epfd;
146 kevent->kext_fd = fd;
147 ++kevent;
152 EV_SET(kevent++, fd, EVFILT_READ, EV_ADD|EV_DISABLE, 0, 0, 0);
164 * Structure converting function from kevent to epoll. In a case
169 kevent_to_epoll(struct kevent *kevent, struct epoll_event *l_event)
172 l_event->data = kevent->kext_data;
174 if ((kevent->flags & EV_ERROR) != 0) {
180 switch (kevent->filter) {
183 if ((kevent->flags & EV_EOF) != 0)
190 DPRINTF(("%s: unhandled kevent filter %d\n", __func__,
191 kevent->filter));
197 * Copyout callback used by kevent. This converts kevent events to
201 epoll_kev_put_events(void *ctx, struct kevent *events,
202 struct kevent *eventlist, size_t index, int n)
216 * Copyin callback used by kevent. This copies already
217 * converted filters from kernel memory to the kevent
222 epoll_kev_fetch_changes(void *ctx, const struct kevent *changelist,
223 struct kevent *changes, size_t index, int n)
233 * Timer copy callback used by kevent. Copies a converted timeout
234 * from kernel memory to kevent memory. Hence the memcpy instead of
246 * Load epoll filter, convert it to kevent filter and load it into
247 * kevent subsystem.
255 struct kevent kev[2];
420 error = kevent1(retval, epfd, NULL, 0, (struct kevent *)events,
491 * Helper that registers a single kevent.
497 struct kevent kev;
519 * 1. If event does not exists kevent() does nothing and returns ENOENT