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