Lines Matching refs:clnt
87 static void mdeg_dump_clnt(mdeg_clnt_t *clnt);
213 mdeg_clnt_t *clnt; in mdeg_alloc_clnt() local
224 clnt = &mdeg.tbl[idx]; in mdeg_alloc_clnt()
225 if (!clnt->valid) { in mdeg_alloc_clnt()
257 clnt = &newtbl[mdeg.maxclnts]; in mdeg_alloc_clnt()
265 ASSERT(clnt->valid == 0); in mdeg_alloc_clnt()
267 clnt->hdl = MDEG_ALLOC_HDL(idx, MDEG_HDL2COUNT(clnt->hdl)); in mdeg_alloc_clnt()
269 return (clnt); in mdeg_alloc_clnt()
276 mdeg_clnt_t *clnt; in mdeg_get_client() local
286 clnt = &mdeg.tbl[idx]; in mdeg_get_client()
289 if (!clnt->valid) { in mdeg_get_client()
295 if (clnt->hdl != hdl) { in mdeg_get_client()
300 if (clnt->magic != MDEG_MAGIC) { in mdeg_get_client()
305 return (clnt); in mdeg_get_client()
316 mdeg_notify_client_reg(mdeg_clnt_t *clnt) in mdeg_notify_client_reg() argument
335 if (clnt->pspec == NULL) { in mdeg_notify_client_reg()
337 (*clnt->cb)(clnt->cb_arg, NULL); in mdeg_notify_client_reg()
347 startnode = mdeg_find_start_node(mdp, clnt->pspec); in mdeg_notify_client_reg()
361 nname = md_find_name(mdp, clnt->nmatch->namep); in mdeg_notify_client_reg()
390 (*clnt->cb)(clnt->cb_arg, mdeg_res); in mdeg_notify_client_reg()
423 mdeg_clnt_t *clnt; in mdeg_register() local
437 clnt = mdeg_alloc_clnt(); in mdeg_register()
439 ASSERT(clnt); in mdeg_register()
444 clnt->nmatch = nmatchp; in mdeg_register()
445 clnt->pspec = pspecp; in mdeg_register()
446 clnt->cb = cb; in mdeg_register()
447 clnt->cb_arg = cb_arg; in mdeg_register()
448 clnt->magic = MDEG_MAGIC; in mdeg_register()
451 clnt->valid = B_TRUE; in mdeg_register()
453 MDEG_DBG("client registered (0x%lx):\n", clnt->hdl); in mdeg_register()
454 MDEG_DUMP_CLNT(clnt); in mdeg_register()
458 if (mdeg_notify_client_reg(clnt) != MDEG_SUCCESS) { in mdeg_register()
459 bzero(clnt, sizeof (mdeg_clnt_t)); in mdeg_register()
466 *hdlp = clnt->hdl; in mdeg_register()
474 mdeg_clnt_t *clnt; in mdeg_unregister() local
483 if ((clnt = mdeg_get_client(hdl)) == NULL) { in mdeg_unregister()
489 MDEG_DUMP_CLNT(clnt); in mdeg_unregister()
492 mdh = clnt->hdl; in mdeg_unregister()
493 bzero(clnt, sizeof (mdeg_clnt_t)); in mdeg_unregister()
495 clnt->hdl = mdh; in mdeg_unregister()
515 mdeg_clnt_t *clnt; in mdeg_notify_clients() local
544 clnt = &mdeg.tbl[idx]; in mdeg_notify_clients()
546 if (!clnt->valid) in mdeg_notify_clients()
549 MDEG_DBG("notifying client 0x%lx (%d/%d)\n", clnt->hdl, in mdeg_notify_clients()
553 (void *)clnt, TQ_SLEEP); in mdeg_notify_clients()
570 mdeg_clnt_t *clnt = (mdeg_clnt_t *)arg; in mdeg_notify_client() local
603 if (clnt->pspec == NULL) { in mdeg_notify_client()
605 (*clnt->cb)(clnt->cb_arg, NULL); in mdeg_notify_client()
612 md_prev_start = mdeg_find_start_node(mdeg.md_prev, clnt->pspec); in mdeg_notify_client()
617 md_curr_start = mdeg_find_start_node(mdeg.md_curr, clnt->pspec); in mdeg_notify_client()
624 md_curr_start, clnt->nmatch->namep, clnt->nmatch->matchp); in mdeg_notify_client()
637 (*clnt->cb)(clnt->cb_arg, &mdeg_res); in mdeg_notify_client()
889 mdeg_dump_clnt(mdeg_clnt_t *clnt) in mdeg_dump_clnt() argument
893 if (!clnt->valid) { in mdeg_dump_clnt()
898 if (clnt->pspec) { in mdeg_dump_clnt()
899 mdeg_spec_str(clnt->pspec, str, MAX_FIELD_STR); in mdeg_dump_clnt()
903 if (clnt->nmatch) { in mdeg_dump_clnt()
904 mdeg_match_str(clnt->nmatch, str, MAX_FIELD_STR); in mdeg_dump_clnt()
913 mdeg_clnt_t *clnt; in mdeg_dump_table() local
916 clnt = &(mdeg.tbl[idx]); in mdeg_dump_table()
918 MDEG_DBG("client %d (0x%lx):\n", idx, clnt->hdl); in mdeg_dump_table()
919 mdeg_dump_clnt(clnt); in mdeg_dump_table()