Lines Matching refs:osfd
158 struct ospollfd *osfd, *tmp; in ospoll_clean_deleted() local
160 xorg_list_for_each_entry_safe(osfd, tmp, &ospoll->deleted, deleted) { in ospoll_clean_deleted()
161 xorg_list_del(&osfd->deleted); in ospoll_clean_deleted()
162 free(osfd); in ospoll_clean_deleted()
303 struct ospollfd *osfd; in ospoll_add() local
306 osfd = calloc(1, sizeof (struct ospollfd)); in ospoll_add()
307 if (!osfd) in ospoll_add()
316 free (osfd); in ospoll_add()
323 osfd->fd = fd; in ospoll_add()
324 osfd->xevents = 0; in ospoll_add()
328 ospoll->fds[pos] = osfd; in ospoll_add()
331 osfd = ospoll->fds[pos]; in ospoll_add()
333 osfd->data = data; in ospoll_add()
334 osfd->callback = callback; in ospoll_add()
335 osfd->trigger = trigger; in ospoll_add()
338 struct ospollfd *osfd; in ospoll_add() local
344 osfd = calloc(1, sizeof (struct ospollfd)); in ospoll_add()
345 if (!osfd) in ospoll_add()
354 free (osfd); in ospoll_add()
362 ev.data.ptr = osfd; in ospoll_add()
366 free(osfd); in ospoll_add()
369 osfd->fd = fd; in ospoll_add()
370 osfd->xevents = 0; in ospoll_add()
374 ospoll->fds[pos] = osfd; in ospoll_add()
377 osfd = ospoll->fds[pos]; in ospoll_add()
379 osfd->data = data; in ospoll_add()
380 osfd->callback = callback; in ospoll_add()
381 osfd->trigger = trigger; in ospoll_add()
426 struct ospollfd *osfd = &ospoll->fds[pos]; in ospoll_remove() local
434 struct ospollfd *osfd = ospoll->fds[pos]; in ospoll_remove() local
439 osfd->callback = NULL; in ospoll_remove()
440 osfd->data = NULL; in ospoll_remove()
441 xorg_list_add(&osfd->deleted, &ospoll->deleted); in ospoll_remove()
444 struct ospollfd *osfd = ospoll->fds[pos]; in ospoll_remove() local
447 ev.data.ptr = osfd; in ospoll_remove()
452 osfd->callback = NULL; in ospoll_remove()
453 osfd->data = NULL; in ospoll_remove()
454 xorg_list_add(&osfd->deleted, &ospoll->deleted); in ospoll_remove()
467 epoll_mod(struct ospoll *ospoll, struct ospollfd *osfd) in epoll_mod() argument
470 if (osfd->xevents & X_NOTIFY_READ) in epoll_mod()
472 if (osfd->xevents & X_NOTIFY_WRITE) in epoll_mod()
474 port_associate(ospoll->epoll_fd, PORT_SOURCE_FD, osfd->fd, events, osfd); in epoll_mod()
480 epoll_mod(struct ospoll *ospoll, struct ospollfd *osfd) in epoll_mod() argument
484 if (osfd->xevents & X_NOTIFY_READ) in epoll_mod()
486 if (osfd->xevents & X_NOTIFY_WRITE) in epoll_mod()
488 if (osfd->trigger == ospoll_trigger_edge) in epoll_mod()
490 ev.data.ptr = osfd; in epoll_mod()
491 (void) epoll_ctl(ospoll->epoll_fd, EPOLL_CTL_MOD, osfd->fd, &ev); in epoll_mod()
515 struct ospollfd *osfd = ospoll->fds[pos]; in ospoll_listen() local
516 osfd->xevents |= xevents; in ospoll_listen()
517 epoll_mod(ospoll, osfd); in ospoll_listen()
539 struct ospollfd *osfd = &ospoll->fds[pos]; in ospoll_mute() local
540 osfd->xevents &= ~xevents; in ospoll_mute()
543 if (osfd->xevents) { in ospoll_mute()
545 if (osfd->xevents & X_NOTIFY_READ) { in ospoll_mute()
548 if (osfd->xevents & X_NOTIFY_WRITE) { in ospoll_mute()
555 struct ospollfd *osfd = ospoll->fds[pos]; in ospoll_mute() local
556 osfd->xevents &= ~xevents; in ospoll_mute()
557 epoll_mod(ospoll, osfd); in ospoll_mute()
581 struct ospollfd *osfd = &ospoll->fds[pos]; in ospoll_wait() local
583 short oldevents = osfd->revents; in ospoll_wait()
585 osfd->revents = (revents & (POLLIN|POLLOUT)); in ospoll_wait()
586 if (osfd->trigger == ospoll_trigger_edge) in ospoll_wait()
596 osfd->callback(osfd->fd, xevents, osfd->data); in ospoll_wait()
616 struct ospollfd *osfd = ev->portev_user; in ospoll_wait() local
627 if (osfd->callback) in ospoll_wait()
628 osfd->callback(osfd->fd, xevents, osfd->data); in ospoll_wait()
630 if (osfd->trigger == ospoll_trigger_level && in ospoll_wait()
631 !xorg_list_is_empty(&osfd->deleted)) { in ospoll_wait()
632 epoll_mod(ospoll, osfd); in ospoll_wait()
645 struct ospollfd *osfd = ev->data.ptr; in ospoll_wait() local
656 if (osfd->callback) in ospoll_wait()
657 osfd->callback(osfd->fd, xevents, osfd->data); in ospoll_wait()