Lines Matching defs:xch
219 fmd_xprt_class_hash_create(fmd_xprt_class_hash_t *xch, fmd_eventq_t *eq)
223 xch->xch_queue = eq;
224 xch->xch_hashlen = hashlen;
225 xch->xch_hash = fmd_zalloc(sizeof (void *) * hashlen, FMD_SLEEP);
229 fmd_xprt_class_hash_destroy(fmd_xprt_class_hash_t *xch)
231 fmd_eventq_t *eq = xch->xch_queue;
235 for (i = 0; i < xch->xch_hashlen; i++) {
236 for (xcp = xch->xch_hash[i]; xcp != NULL; xcp = ncp) {
247 fmd_free(xch->xch_hash, sizeof (void *) * xch->xch_hashlen);
257 fmd_xprt_class_hash_t *xch, const char *class)
259 uint_t h = fmd_strhash(class) % xch->xch_hashlen;
264 for (xcp = xch->xch_hash[h]; xcp != NULL; xcp = xcp->xc_next) {
271 xcp->xc_next = xch->xch_hash[h];
273 xch->xch_hash[h] = xcp;
275 if (xch->xch_queue != NULL)
276 fmd_dispq_insert(fmd.d_disp, xch->xch_queue, class);
288 fmd_xprt_class_hash_t *xch, const char *class)
290 uint_t h = fmd_strhash(class) % xch->xch_hashlen;
294 pp = &xch->xch_hash[h];
315 if (xch->xch_queue != NULL)
316 fmd_dispq_delete(fmd.d_disp, xch->xch_queue, class);