Lines Matching refs:imp

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