Lines Matching refs:desc

110 	kcf_provider_desc_t *desc;  in crypto_unregister_provider()  local
114 if ((desc = kcf_prov_tab_lookup((crypto_provider_id_t)handle)) == NULL) in crypto_unregister_provider()
117 mutex_enter(&desc->pd_lock); in crypto_unregister_provider()
122 if (desc->pd_state >= KCF_PROV_DISABLED) { in crypto_unregister_provider()
123 mutex_exit(&desc->pd_lock); in crypto_unregister_provider()
125 KCF_PROV_REFRELE(desc); in crypto_unregister_provider()
129 saved_state = desc->pd_state; in crypto_unregister_provider()
130 desc->pd_state = KCF_PROV_REMOVED; in crypto_unregister_provider()
137 if (desc->pd_refcnt > desc->pd_irefcnt + 1) { in crypto_unregister_provider()
138 desc->pd_state = saved_state; in crypto_unregister_provider()
139 mutex_exit(&desc->pd_lock); in crypto_unregister_provider()
141 KCF_PROV_REFRELE(desc); in crypto_unregister_provider()
149 mutex_exit(&desc->pd_lock); in crypto_unregister_provider()
152 for (mech_idx = 0; mech_idx < desc->pd_mech_list_count; in crypto_unregister_provider()
155 desc->pd_mechanisms[mech_idx].cm_mech_name, desc); in crypto_unregister_provider()
162 KCF_PROV_REFRELE(desc); in crypto_unregister_provider()
167 KCF_PROV_REFRELE(desc); in crypto_unregister_provider()
172 mutex_enter(&desc->pd_lock); in crypto_unregister_provider()
173 while (desc->pd_state != KCF_PROV_FREED) in crypto_unregister_provider()
174 cv_wait(&desc->pd_remove_cv, &desc->pd_lock); in crypto_unregister_provider()
175 mutex_exit(&desc->pd_lock); in crypto_unregister_provider()
182 ASSERT(desc->pd_state == KCF_PROV_FREED && in crypto_unregister_provider()
183 desc->pd_refcnt == 0); in crypto_unregister_provider()
184 kcf_free_provider_desc(desc); in crypto_unregister_provider()
199 init_prov_mechs(const crypto_provider_info_t *info, kcf_provider_desc_t *desc) in init_prov_mechs() argument
215 desc->pd_mech_list_count = info->pi_mech_list_count; in init_prov_mechs()
216 desc->pd_mechanisms = info->pi_mechanisms; in init_prov_mechs()
223 for (mech_idx = 0; mech_idx < desc->pd_mech_list_count; mech_idx++) { in init_prov_mechs()
224 if ((err = kcf_add_mech_provider(mech_idx, desc, &pmd)) != in init_prov_mechs()
253 desc->pd_mechanisms[cleanup_idx].cm_mech_name, desc); in init_prov_mechs()
267 undo_register_provider(kcf_provider_desc_t *desc, boolean_t remove_prov) in undo_register_provider() argument
272 for (mech_idx = 0; mech_idx < desc->pd_mech_list_count; in undo_register_provider()
275 desc->pd_mechanisms[mech_idx].cm_mech_name, desc); in undo_register_provider()
280 (void) kcf_prov_tab_rem_provider(desc->pd_prov_id); in undo_register_provider()