Lines Matching refs:xcp
232 fmd_xprt_class_t *xcp, *ncp;
236 for (xcp = xch->xch_hash[i]; xcp != NULL; xcp = ncp) {
237 ncp = xcp->xc_next;
240 fmd_dispq_delete(fmd.d_disp, eq, xcp->xc_class);
242 fmd_strfree(xcp->xc_class);
243 fmd_free(xcp, sizeof (fmd_xprt_class_t));
260 fmd_xprt_class_t *xcp;
264 for (xcp = xch->xch_hash[h]; xcp != NULL; xcp = xcp->xc_next) {
265 if (strcmp(class, xcp->xc_class) == 0)
266 return (++xcp->xc_refs);
269 xcp = fmd_alloc(sizeof (fmd_xprt_class_t), FMD_SLEEP);
270 xcp->xc_class = fmd_strdup(class, FMD_SLEEP);
271 xcp->xc_next = xch->xch_hash[h];
272 xcp->xc_refs = 1;
273 xch->xch_hash[h] = xcp;
278 return (xcp->xc_refs);
291 fmd_xprt_class_t *xcp, **pp;
296 for (xcp = *pp; xcp != NULL; xcp = xcp->xc_next) {
297 if (strcmp(class, xcp->xc_class) == 0)
300 pp = &xcp->xc_next;
303 if (xcp == NULL)
306 if (--xcp->xc_refs != 0)
307 return (xcp->xc_refs);
309 ASSERT(xcp->xc_refs == 0);
310 *pp = xcp->xc_next;
312 fmd_strfree(xcp->xc_class);
313 fmd_free(xcp, sizeof (fmd_xprt_class_t));