Lines Matching refs:sdp

307 	evch_subd_t *sdp;  in evch_zonefree()  local
327 while ((sdp = evch_dl_next(&chp->ch_subscr, NULL)) != NULL) { in evch_zonefree()
333 ASSERT(sdp->sd_active == 0); in evch_zonefree()
334 ASSERT((sdp->sd_persist & EVCH_SUB_KEEP) != 0); in evch_zonefree()
338 evch_evq_unsub(chp->ch_queue, sdp->sd_msub); in evch_zonefree()
341 evch_evq_unsub(sdp->sd_queue, sdp->sd_ssub); in evch_zonefree()
342 evch_evq_destroy(sdp->sd_queue); in evch_zonefree()
346 evch_dl_del(&chp->ch_subscr, &sdp->sd_link); in evch_zonefree()
347 kmem_free(sdp->sd_classname, sdp->sd_clnsize); in evch_zonefree()
348 kmem_free(sdp->sd_ident, strlen(sdp->sd_ident) + 1); in evch_zonefree()
349 kmem_free(sdp, sizeof (evch_subd_t)); in evch_zonefree()
870 evch_subd_t *sdp = (evch_subd_t *)cookie; in evch_kern_deliver() local
872 return (sdp->sd_callback(ev, sdp->sd_cbcookie)); in evch_kern_deliver()
885 evch_subd_t *sdp = (evch_subd_t *)cookie; in evch_door_deliver() local
901 if ((error = door_ki_upcall_limited(sdp->sd_door, &darg, in evch_door_deliver()
1028 evch_subd_t *sdp; in evch_chinitthr() local
1039 for (sdp = evch_dl_next(&chp->ch_subscr, NULL); sdp; in evch_chinitthr()
1040 sdp = evch_dl_next(&chp->ch_subscr, sdp)) { in evch_chinitthr()
1041 evch_evq_thrcreate(sdp->sd_queue); in evch_chinitthr()
1206 evch_subd_t *sdp; in evch_chsubscribe() local
1282 sdp = kmem_zalloc(sizeof (evch_subd_t), KM_SLEEP); in evch_chsubscribe()
1283 sdp->sd_queue = evch_evq_create(); in evch_chsubscribe()
1286 sdp->sd_persist = flags & EVCH_SUB_KEEP ? 1 : 0; in evch_chsubscribe()
1287 sdp->sd_dump = flags & EVCH_SUB_DUMP ? 1 : 0; in evch_chsubscribe()
1288 sdp->sd_type = dtype; in evch_chsubscribe()
1289 sdp->sd_cbcookie = cookie; in evch_chsubscribe()
1290 sdp->sd_ident = subid; in evch_chsubscribe()
1292 sdp->sd_callback = (kerndlv_f)dinfo; in evch_chsubscribe()
1295 sdp->sd_door = (door_handle_t)dinfo; in evch_chsubscribe()
1298 sdp->sd_ssub = in evch_chsubscribe()
1299 evch_evq_sub(sdp->sd_queue, NULL, NULL, delivfkt, (void *)sdp); in evch_chsubscribe()
1302 sdp->sd_msub = evch_evq_sub(eqp, evch_class_filter, clb, in evch_chsubscribe()
1303 evch_subq_deliver, (void *)sdp); in evch_chsubscribe()
1304 sdp->sd_classname = clb; in evch_chsubscribe()
1305 sdp->sd_clnsize = clblen; in evch_chsubscribe()
1306 sdp->sd_pid = pid; in evch_chsubscribe()
1307 sdp->sd_active++; in evch_chsubscribe()
1310 sdp->sd_subnxt = bp->bd_sublst; in evch_chsubscribe()
1311 bp->bd_sublst = sdp; in evch_chsubscribe()
1314 evch_dl_add(&chp->ch_subscr, &sdp->sd_link); in evch_chsubscribe()
1333 evch_subd_t *sdp; in evch_chunsubscribe() local
1343 for (sdp = bp->bd_sublst; sdp; sdp = next) { in evch_chunsubscribe()
1344 if (sid == NULL || strcmp(sid, sdp->sd_ident) == 0) { in evch_chunsubscribe()
1345 if (flags == 0 || sdp->sd_persist == 0) { in evch_chunsubscribe()
1350 evch_evq_unsub(chp->ch_queue, sdp->sd_msub); in evch_chunsubscribe()
1353 evch_evq_unsub(sdp->sd_queue, sdp->sd_ssub); in evch_chunsubscribe()
1354 evch_evq_destroy(sdp->sd_queue); in evch_chunsubscribe()
1359 evch_dl_del(&chp->ch_subscr, &sdp->sd_link); in evch_chunsubscribe()
1360 kmem_free(sdp->sd_classname, sdp->sd_clnsize); in evch_chunsubscribe()
1361 if (sdp->sd_type == EVCH_DELDOOR) { in evch_chunsubscribe()
1362 door_ki_rele(sdp->sd_door); in evch_chunsubscribe()
1364 next = sdp->sd_subnxt; in evch_chunsubscribe()
1370 kmem_free(sdp->sd_ident, in evch_chunsubscribe()
1371 strlen(sdp->sd_ident) + 1); in evch_chunsubscribe()
1372 kmem_free(sdp, sizeof (evch_subd_t)); in evch_chunsubscribe()
1377 evch_evq_stop(sdp->sd_queue); in evch_chunsubscribe()
1378 if (sdp->sd_type == EVCH_DELDOOR) { in evch_chunsubscribe()
1379 door_ki_rele(sdp->sd_door); in evch_chunsubscribe()
1381 sdp->sd_active--; in evch_chunsubscribe()
1382 ASSERT(sdp->sd_active == 0); in evch_chunsubscribe()
1383 next = sdp->sd_subnxt; in evch_chunsubscribe()
1384 prev = sdp; in evch_chunsubscribe()
1390 next = sdp->sd_subnxt; in evch_chunsubscribe()
1391 prev = sdp; in evch_chunsubscribe()
1494 evch_subd_t *sdp; in evch_chgetchdata() local
1533 for (sdp = evch_dl_next(&chp->ch_subscr, NULL); sdp != NULL; in evch_chgetchdata()
1534 sdp = evch_dl_next(&chp->ch_subscr, sdp)) { in evch_chgetchdata()
1535 idlen = strlen(sdp->sd_ident) + 1; in evch_chgetchdata()
1537 sdp->sd_clnsize); in evch_chgetchdata()
1546 if (sdp->sd_classname) { in evch_chgetchdata()
1547 bcopy(sdp->sd_classname, subp->sb_strings + idlen, in evch_chgetchdata()
1548 sdp->sd_clnsize); in evch_chgetchdata()
1553 subp->sb_pid = sdp->sd_pid; in evch_chgetchdata()
1554 subp->sb_nevents = EVCH_EVQ_EVCOUNT(sdp->sd_queue); in evch_chgetchdata()
1555 subp->sb_evhwm = EVCH_EVQ_HIGHWM(sdp->sd_queue); in evch_chgetchdata()
1556 subp->sb_persist = sdp->sd_persist; in evch_chgetchdata()
1557 subp->sb_status = evch_evq_status(sdp->sd_queue); in evch_chgetchdata()
1558 subp->sb_active = sdp->sd_active; in evch_chgetchdata()
1559 subp->sb_dump = sdp->sd_dump; in evch_chgetchdata()
1560 bcopy(sdp->sd_ident, subp->sb_strings, idlen); in evch_chgetchdata()
1627 evch_subd_t *sdp; in evch_chrdevent_init() local
1639 if ((sdp = (evch_subd_t *)evch_dl_search(&chp->ch_subscr, in evch_chrdevent_init()
1641 evch_subq = sdp->sd_queue; in evch_chrdevent_init()
1646 sdp = (evch_subd_t *)evch_dl_search(&chp->ch_subscr, compfunc, subid); in evch_chrdevent_init()
1654 if (sdp != NULL) { in evch_chrdevent_init()
1655 psqstat = evch_evq_status(sdp->sd_queue); in evch_chrdevent_init()
1657 evch_evq_stop(sdp->sd_queue); in evch_chrdevent_init()
1669 if (sdp != NULL) { in evch_chrdevent_init()
1671 while ((ev = evch_evq_evnext(sdp->sd_queue, ev)) != NULL) { in evch_chrdevent_init()
1683 if (sdp != NULL && psqstat == 0) in evch_chrdevent_init()
1684 evch_evq_continue(sdp->sd_queue); in evch_chrdevent_init()