Lines Matching refs:portq
63 port_block(port_queue_t *portq) in port_block() argument
65 ASSERT(MUTEX_HELD(&portq->portq_mutex)); in port_block()
67 while (portq->portq_flags & PORTQ_BLOCKED) in port_block()
68 cv_wait(&portq->portq_block_cv, &portq->portq_mutex); in port_block()
69 portq->portq_flags |= PORTQ_BLOCKED; in port_block()
76 port_unblock(port_queue_t *portq) in port_unblock() argument
78 ASSERT(MUTEX_HELD(&portq->portq_mutex)); in port_unblock()
80 portq->portq_flags &= ~PORTQ_BLOCKED; in port_unblock()
81 cv_signal(&portq->portq_block_cv); in port_unblock()
96 port_queue_t *portq; in port_pollwkup() local
97 portq = &pp->port_queue; in port_pollwkup()
98 mutex_enter(&portq->portq_mutex); in port_pollwkup()
107 if (portq->portq_flags & PORTQ_POLLIN && in port_pollwkup()
108 !(portq->portq_flags & PORTQ_POLLWK_PEND)) { in port_pollwkup()
109 portq->portq_flags &= ~PORTQ_POLLIN; in port_pollwkup()
110 portq->portq_flags |= PORTQ_POLLWK_PEND; in port_pollwkup()
113 mutex_exit(&portq->portq_mutex); in port_pollwkup()
120 port_queue_t *portq; in port_pollwkdone() local
121 portq = &pp->port_queue; in port_pollwkdone()
122 ASSERT(portq->portq_flags & PORTQ_POLLWK_PEND); in port_pollwkdone()
123 mutex_enter(&portq->portq_mutex); in port_pollwkdone()
124 portq->portq_flags &= ~PORTQ_POLLWK_PEND; in port_pollwkdone()
126 mutex_exit(&portq->portq_mutex); in port_pollwkdone()
145 port_queue_t *portq; in port_send_event() local
147 portq = &pkevp->portkev_port->port_queue; in port_send_event()
148 mutex_enter(&portq->portq_mutex); in port_send_event()
155 mutex_exit(&portq->portq_mutex); in port_send_event()
160 list_insert_tail(&portq->portq_list, pkevp); in port_send_event()
161 portq->portq_nent++; in port_send_event()
167 portq->portq_flags &= ~PORTQ_WAIT_EVENTS; in port_send_event()
175 if (portq->portq_flags & PORTQ_CLOSE) { in port_send_event()
177 if (pkevp->portkev_port->port_curr <= portq->portq_nent) in port_send_event()
178 cv_signal(&portq->portq_closecv); in port_send_event()
181 if (portq->portq_getn == 0) { in port_send_event()
186 if (portq->portq_thread && in port_send_event()
187 (portq->portq_nent >= portq->portq_nget)) in port_send_event()
188 cv_signal(&portq->portq_thread->portget_cv); in port_send_event()
199 portq->portq_flags & PORTQ_POLLIN) { in port_send_event()
202 portq->portq_flags &= ~PORTQ_POLLIN; in port_send_event()
208 mutex_exit(&portq->portq_mutex); in port_send_event()
211 mutex_exit(&portq->portq_mutex); in port_send_event()
385 port_remove_event_doneq(port_kevent_t *pkevp, port_queue_t *portq) in port_remove_event_doneq() argument
387 ASSERT(MUTEX_HELD(&portq->portq_mutex)); in port_remove_event_doneq()
388 list_remove(&portq->portq_list, pkevp); in port_remove_event_doneq()
389 portq->portq_nent--; in port_remove_event_doneq()
402 port_queue_t *portq; in port_remove_done_event() local
405 portq = &pkevp->portkev_port->port_queue; in port_remove_done_event()
406 mutex_enter(&portq->portq_mutex); in port_remove_done_event()
408 port_block(portq); in port_remove_done_event()
411 if (portq->portq_getn) { in port_remove_done_event()
417 port_push_eventq(portq); in port_remove_done_event()
420 port_remove_event_doneq(pkevp, portq); in port_remove_done_event()
423 port_unblock(portq); in port_remove_done_event()
424 mutex_exit(&portq->portq_mutex); in port_remove_done_event()
437 port_queue_t *portq; in port_free_event() local
448 portq = &pp->port_queue; in port_free_event()
449 mutex_enter(&portq->portq_mutex); in port_free_event()
450 port_block(portq); in port_free_event()
454 port_unblock(portq); in port_free_event()
455 mutex_exit(&portq->portq_mutex); in port_free_event()
458 port_unblock(portq); in port_free_event()
461 mutex_exit(&portq->portq_mutex); in port_free_event()
467 if (portq->portq_flags & PORTQ_CLOSE) { in port_free_event()
475 if (pp->port_curr <= portq->portq_nent) in port_free_event()
476 cv_signal(&portq->portq_closecv); in port_free_event()
478 mutex_exit(&portq->portq_mutex); in port_free_event()
491 port_queue_t *portq = &pp->port_queue; in port_free_event_local() local
500 mutex_enter(&portq->portq_mutex); in port_free_event_local()
505 wakeup = (portq->portq_flags & PORTQ_POLLOUT); in port_free_event_local()
506 portq->portq_flags &= ~PORTQ_POLLOUT; in port_free_event_local()
507 mutex_exit(&portq->portq_mutex); in port_free_event_local()
599 port_push_eventq(port_queue_t *portq) in port_push_eventq() argument
605 list_move_tail(&portq->portq_list, &portq->portq_get_list); in port_push_eventq()
606 portq->portq_nent += portq->portq_tnent; in port_push_eventq()
607 portq->portq_tnent = 0; in port_push_eventq()
618 port_queue_t *portq; in port_remove_fd_object() local
627 portq = &pp->port_queue; in port_remove_fd_object()
628 mutex_enter(&portq->portq_mutex); in port_remove_fd_object()
629 port_block(portq); in port_remove_fd_object()
631 if (portq->portq_getn && portq->portq_tnent) { in port_remove_fd_object()
636 port_push_eventq(portq); in port_remove_fd_object()
639 port_remove_event_doneq(pkevp, portq); in port_remove_fd_object()
642 port_unblock(portq); in port_remove_fd_object()
643 mutex_exit(&portq->portq_mutex); in port_remove_fd_object()