Lines Matching defs:imp

356 	ipp_mod_t	*imp;
366 if ((imp = hold_mod(mid)) == NULL)
369 LOCK_MOD(imp, RW_READER);
370 modname = imp->ippm_name;
377 UNLOCK_MOD(imp);
378 rele_mod(imp);
387 UNLOCK_MOD(imp);
391 rele_mod(imp);
403 ipp_mod_t *imp;
422 imp = hold_mod(mid);
423 ASSERT(imp != NULL);
429 LOCK_MOD(imp, RW_WRITER);
430 DBG1(DBG_MOD, "registering module '%s'\n", imp->ippm_name);
431 imp->ippm_ops = ipp_ops;
432 imp->ippm_state = IPP_MODSTATE_AVAILABLE;
433 UNLOCK_MOD(imp);
435 rele_mod(imp);
445 ipp_mod_t *imp;
451 if ((imp = hold_mod(mid)) == NULL)
454 LOCK_MOD(imp, RW_WRITER);
455 ASSERT(imp->ippm_state == IPP_MODSTATE_AVAILABLE);
461 if (is_mod_busy(imp)) {
462 UNLOCK_MOD(imp);
463 rele_mod(imp);
471 DBG1(DBG_MOD, "unregistering module '%s'\n", imp->ippm_name);
472 imp->ippm_state = IPP_MODSTATE_PROTO;
473 imp->ippm_ops = NULL;
474 UNLOCK_MOD(imp);
480 free_mod(imp);
481 rele_mod(imp);
494 ipp_mod_t *imp;
504 if ((imp = hold_mod(mid)) == NULL)
511 LOCK_MOD(imp, RW_READER);
512 rc = get_mod_ref(imp, bufp, neltp);
513 UNLOCK_MOD(imp);
515 rele_mod(imp);
632 ipp_mod_t *imp;
669 imp = ap->ippa_mod;
670 ASSERT(imp != NULL);
673 *midp = imp->ippm_id;
690 ipp_mod_t *imp;
710 if ((imp = hold_mod(mid)) == NULL)
718 rele_mod(imp);
736 LOCK_MOD(imp, RW_WRITER);
737 if ((rc = ref_mod(ap, imp)) != 0) {
738 UNLOCK_MOD(imp);
744 rele_mod(imp);
750 ippo = imp->ippm_ops;
752 UNLOCK_MOD(imp);
760 ap->ippa_name, imp->ippm_name);
763 LOCK_MOD(imp, RW_WRITER);
764 unref_mod(ap, imp);
765 UNLOCK_MOD(imp);
773 rele_mod(imp);
789 rele_mod(imp);
865 ipp_mod_t *imp;
894 imp = ap->ippa_mod;
895 ASSERT(imp != NULL);
898 ippo = imp->ippm_ops;
924 ipp_mod_t *imp;
948 imp = ap->ippa_mod;
949 ASSERT(imp != NULL);
952 ippo = imp->ippm_ops;
1321 ipp_mod_t *imp;
1381 imp = ap->ippa_mod;
1382 ASSERT(imp != NULL);
1385 ippo = imp->ippm_ops;
1610 ipp_mod_t *imp;
1642 imp = ap->ippa_mod;
1643 ASSERT(imp != NULL);
1645 LOCK_MOD(imp, RW_READER);
1646 modname = imp->ippm_name;
1665 UNLOCK_MOD(imp);
1670 UNLOCK_MOD(imp);
1894 ipp_mod_t *imp)
1900 ASSERT(rw_write_held(imp->ippm_lock));
1906 rpp = &(imp->ippm_action);
1931 ap->ippa_mod = imp;
1941 ipp_mod_t *imp)
1947 ASSERT(rw_write_held(imp->ippm_lock));
1953 rpp = &(imp->ippm_action);
1979 ipp_mod_t *imp)
1986 return (imp->ippm_action != NULL);
1993 ipp_mod_t *imp,
2003 ASSERT(rw_lock_held(imp->ippm_lock));
2010 for (rp = imp->ippm_action; rp != NULL; rp = rp->ippr_nextp) {
2040 for (rp = imp->ippm_action; rp != NULL; rp = rp->ippr_nextp) {
2059 ipp_mod_t *imp;
2097 if ((imp = ipp_mod_byid[mid]) == NULL)
2106 LOCK_MOD(imp, RW_READER);
2107 ASSERT(imp->ippm_id == mid);
2109 if (imp->ippm_destruct_pending) {
2110 UNLOCK_MOD(imp);
2113 UNLOCK_MOD(imp);
2132 ipp_mod_t *imp;
2161 imp = rp->ippr_mod;
2162 if (strcmp(imp->ippm_name, modname) == 0)
2172 if (imp->ippm_state == IPP_MODSTATE_PROTO) {
2177 mid = imp->ippm_id;
2190 ipp_mod_t *imp;
2213 imp = rp->ippr_mod;
2214 if (strcmp(imp->ippm_name, modname) == 0) {
2231 if ((imp = kmem_cache_alloc(ipp_mod_cache, KM_NOSLEEP)) == NULL) {
2241 (void) strcpy(imp->ippm_name, modname);
2248 LOCK_MOD(imp, RW_WRITER);
2249 imp->ippm_destruct_pending = B_FALSE;
2250 UNLOCK_MOD(imp);
2256 rp->ippr_mod = imp;
2265 *midp = imp->ippm_id;
2274 ipp_mod_t *imp)
2286 hb = hash(imp->ippm_name);
2294 if (rp->ippr_mod == imp)
2317 *imp->ippm_name = '\0';
2324 LOCK_MOD(imp, RW_WRITER);
2325 imp->ippm_destruct_pending = B_TRUE;
2326 if (imp->ippm_hold_count == 0) {
2327 UNLOCK_MOD(imp);
2328 kmem_cache_free(ipp_mod_cache, imp);
2332 UNLOCK_MOD(imp);
2343 ipp_mod_t *imp;
2354 if ((imp = ipp_mod_byid[mid]) == NULL) {
2359 ASSERT(imp->ippm_id == mid);
2367 LOCK_MOD(imp, RW_READER);
2368 if (imp->ippm_destruct_pending) {
2369 UNLOCK_MOD(imp);
2373 UNLOCK_MOD(imp);
2380 atomic_inc_32(&(imp->ippm_hold_count));
2383 return (imp);
2390 ipp_mod_t *imp)
2397 ASSERT(imp->ippm_hold_count != 0);
2398 atomic_dec_32(&(imp->ippm_hold_count));
2405 LOCK_MOD(imp, RW_READER);
2406 if (imp->ippm_destruct_pending && imp->ippm_hold_count == 0) {
2407 UNLOCK_MOD(imp);
2408 kmem_cache_free(ipp_mod_cache, imp);
2412 UNLOCK_MOD(imp);
2505 ipp_mod_t *imp;
2567 imp = ap->ippa_mod;
2568 ASSERT(imp != NULL);
2571 ippo = imp->ippm_ops;
2593 LOCK_MOD(imp, RW_WRITER);
2594 unref_mod(ap, imp);
2595 UNLOCK_MOD(imp);
3359 ipp_mod_t *imp;
3364 imp = (ipp_mod_t *)buf;
3381 imp->ippm_destruct_pending = B_TRUE;
3382 imp->ippm_state = IPP_MODSTATE_PROTO;
3383 rw_init(imp->ippm_lock, NULL, RW_DEFAULT,
3390 imp->ippm_id = mid;
3391 ipp_mod_byid[mid] = imp;
3406 ipp_mod_t *imp;
3409 imp = (ipp_mod_t *)buf;
3411 ASSERT(imp->ippm_state == IPP_MODSTATE_PROTO);
3412 ASSERT(imp->ippm_action == NULL);
3413 ASSERT(*imp->ippm_name == '\0');
3414 ASSERT(imp->ippm_destruct_pending);
3417 ASSERT(imp->ippm_hold_count == 0);
3423 ipp_mod_byid[imp->ippm_id] = NULL;
3430 rw_destroy(imp->ippm_lock);