Lines Matching refs:pkevp

143 port_send_event(port_kevent_t *pkevp)  in port_send_event()  argument
147 portq = &pkevp->portkev_port->port_queue; in port_send_event()
150 if (pkevp->portkev_flags & PORT_KEV_DONEQ) { in port_send_event()
152 if (pkevp->portkev_source == PORT_SOURCE_FD) { in port_send_event()
153 mutex_exit(&pkevp->portkev_lock); in port_send_event()
160 list_insert_tail(&portq->portq_list, pkevp); in port_send_event()
168 pkevp->portkev_flags |= PORT_KEV_DONEQ; /* event enqueued */ in port_send_event()
170 if (pkevp->portkev_source == PORT_SOURCE_FD) { in port_send_event()
171 mutex_exit(&pkevp->portkev_lock); in port_send_event()
177 if (pkevp->portkev_port->port_curr <= portq->portq_nent) in port_send_event()
198 if (pkevp->portkev_source != PORT_SOURCE_FD && in port_send_event()
207 pp = pkevp->portkev_port; in port_send_event()
251 port_kevent_t *pkevp; in port_alloc_event() local
261 pkevp = kmem_cache_alloc(port_control.pc_cache, KM_NOSLEEP); in port_alloc_event()
262 if (pkevp == NULL) { in port_alloc_event()
275 kmem_cache_free(port_control.pc_cache, pkevp); in port_alloc_event()
282 bzero(pkevp, sizeof (port_kevent_t)); in port_alloc_event()
283 mutex_init(&pkevp->portkev_lock, NULL, MUTEX_DEFAULT, NULL); in port_alloc_event()
284 pkevp->portkev_source = source; in port_alloc_event()
285 pkevp->portkev_flags = flags; in port_alloc_event()
286 pkevp->portkev_pid = curproc->p_pid; in port_alloc_event()
287 pkevp->portkev_port = pp; in port_alloc_event()
288 *pkevpp = pkevp; in port_alloc_event()
299 port_dup_event(port_kevent_t *pkevp, port_kevent_t **pkevdupp, int flags) in port_dup_event() argument
303 error = port_alloc_event_local(pkevp->portkev_port, in port_dup_event()
304 pkevp->portkev_source, flags, pkevdupp); in port_dup_event()
306 (*pkevdupp)->portkev_pid = pkevp->portkev_pid; in port_dup_event()
320 port_kevent_t *pkevp; in port_alloc_event_local() local
322 pkevp = kmem_cache_alloc(port_control.pc_cache, KM_NOSLEEP); in port_alloc_event_local()
323 if (pkevp == NULL) in port_alloc_event_local()
329 kmem_cache_free(port_control.pc_cache, pkevp); in port_alloc_event_local()
335 bzero(pkevp, sizeof (port_kevent_t)); in port_alloc_event_local()
336 mutex_init(&pkevp->portkev_lock, NULL, MUTEX_DEFAULT, NULL); in port_alloc_event_local()
337 pkevp->portkev_flags = flags; in port_alloc_event_local()
338 pkevp->portkev_port = pp; in port_alloc_event_local()
339 pkevp->portkev_source = source; in port_alloc_event_local()
340 pkevp->portkev_pid = curproc->p_pid; in port_alloc_event_local()
341 *pkevpp = pkevp; in port_alloc_event_local()
356 port_kevent_t *pkevp = in port_alloc_event_block() local
364 kmem_cache_free(port_control.pc_cache, pkevp); in port_alloc_event_block()
371 bzero(pkevp, sizeof (port_kevent_t)); in port_alloc_event_block()
372 mutex_init(&pkevp->portkev_lock, NULL, MUTEX_DEFAULT, NULL); in port_alloc_event_block()
373 pkevp->portkev_flags = flags; in port_alloc_event_block()
374 pkevp->portkev_port = pp; in port_alloc_event_block()
375 pkevp->portkev_source = source; in port_alloc_event_block()
376 pkevp->portkev_pid = curproc->p_pid; in port_alloc_event_block()
377 *pkevpp = pkevp; in port_alloc_event_block()
385 port_remove_event_doneq(port_kevent_t *pkevp, port_queue_t *portq) in port_remove_event_doneq() argument
388 list_remove(&portq->portq_list, pkevp); in port_remove_event_doneq()
390 pkevp->portkev_flags &= ~PORT_KEV_DONEQ; in port_remove_event_doneq()
400 port_remove_done_event(port_kevent_t *pkevp) in port_remove_done_event() argument
405 portq = &pkevp->portkev_port->port_queue; in port_remove_done_event()
409 if (pkevp->portkev_flags & PORT_KEV_DONEQ) { in port_remove_done_event()
420 port_remove_event_doneq(pkevp, portq); in port_remove_done_event()
435 port_free_event(port_kevent_t *pkevp) in port_free_event() argument
440 pp = pkevp->portkev_port; in port_free_event()
443 if (pkevp->portkev_flags & PORT_ALLOC_PRIVATE) { in port_free_event()
444 port_free_event_local(pkevp, 0); in port_free_event()
451 if (pkevp->portkev_flags & PORT_KEV_DONEQ) { in port_free_event()
452 pkevp->portkev_flags |= PORT_KEV_FREE; in port_free_event()
453 pkevp->portkev_callback = NULL; in port_free_event()
460 if (pkevp->portkev_flags & PORT_KEV_CACHED) { in port_free_event()
479 port_free_event_local(pkevp, 1); in port_free_event()
488 port_free_event_local(port_kevent_t *pkevp, int counter) in port_free_event_local() argument
490 port_t *pp = pkevp->portkev_port; in port_free_event_local()
494 pkevp->portkev_callback = NULL; in port_free_event_local()
495 pkevp->portkev_flags = 0; in port_free_event_local()
496 pkevp->portkev_port = NULL; in port_free_event_local()
497 mutex_destroy(&pkevp->portkev_lock); in port_free_event_local()
498 kmem_cache_free(port_control.pc_cache, pkevp); in port_free_event_local()
534 port_init_event(port_kevent_t *pkevp, uintptr_t object, void *user, in port_init_event() argument
538 pkevp->portkev_object = object; in port_init_event()
539 pkevp->portkev_user = user; in port_init_event()
540 pkevp->portkev_callback = port_callback; in port_init_event()
541 pkevp->portkev_arg = sysarg; in port_init_event()
620 port_kevent_t *pkevp; in port_remove_fd_object() local
626 pkevp = pdp->pd_portev; in port_remove_fd_object()
630 if (pkevp->portkev_flags & PORT_KEV_DONEQ) { in port_remove_fd_object()
639 port_remove_event_doneq(pkevp, portq); in port_remove_fd_object()
644 if (pkevp->portkev_callback) { in port_remove_fd_object()
645 (void) (*pkevp->portkev_callback)(pkevp->portkev_arg, in port_remove_fd_object()
646 &error, pkevp->portkev_pid, PORT_CALLBACK_DISSOCIATE, in port_remove_fd_object()
647 pkevp); in port_remove_fd_object()
649 port_free_event_local(pkevp, 0); in port_remove_fd_object()