• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/contrib/openzfs/module/icp/spi/

Lines Matching refs:desc

292 	kcf_provider_desc_t *desc;
296 if ((desc = kcf_prov_tab_lookup((crypto_provider_id_t)handle)) == NULL)
299 mutex_enter(&desc->pd_lock);
304 if (desc->pd_state >= KCF_PROV_DISABLED) {
305 mutex_exit(&desc->pd_lock);
307 KCF_PROV_REFRELE(desc);
311 saved_state = desc->pd_state;
312 desc->pd_state = KCF_PROV_REMOVED;
319 cv_broadcast(&desc->pd_resume_cv);
322 if (desc->pd_prov_type == CRYPTO_SW_PROVIDER) {
328 if (desc->pd_refcnt > desc->pd_irefcnt + 1) {
329 desc->pd_state = saved_state;
330 mutex_exit(&desc->pd_lock);
332 KCF_PROV_REFRELE(desc);
341 mutex_exit(&desc->pd_lock);
343 if (desc->pd_prov_type != CRYPTO_SW_PROVIDER) {
344 remove_provider(desc);
347 if (desc->pd_prov_type != CRYPTO_LOGICAL_PROVIDER) {
349 for (mech_idx = 0; mech_idx < desc->pd_mech_list_count;
352 desc->pd_mechanisms[mech_idx].cm_mech_name, desc);
360 KCF_PROV_REFRELE(desc);
364 delete_kstat(desc);
366 if (desc->pd_prov_type == CRYPTO_SW_PROVIDER) {
368 KCF_PROV_REFRELE(desc);
373 mutex_enter(&desc->pd_lock);
374 while (desc->pd_state != KCF_PROV_FREED)
375 cv_wait(&desc->pd_remove_cv, &desc->pd_lock);
376 mutex_exit(&desc->pd_lock);
382 mutex_enter(&desc->pd_lock);
383 while (desc->pd_irefcnt > 0)
384 cv_wait(&desc->pd_remove_cv, &desc->pd_lock);
385 mutex_exit(&desc->pd_lock);
388 kcf_do_notify(desc, B_FALSE);
390 if (desc->pd_prov_type == CRYPTO_SW_PROVIDER) {
396 ASSERT(desc->pd_state == KCF_PROV_FREED &&
397 desc->pd_refcnt == 0);
398 kcf_free_provider_desc(desc);
400 KCF_PROV_REFRELE(desc);
569 init_prov_mechs(crypto_provider_info_t *info, kcf_provider_desc_t *desc)
576 int mcount = desc->pd_mech_list_count;
578 if (desc->pd_prov_type == CRYPTO_LOGICAL_PROVIDER) {
581 bcopy(info->pi_mechanisms, desc->pd_mechanisms,
589 * descriptor. desc->pd_mechanisms has an extra crypto_mech_info_t
603 bcopy(info->pi_mechanisms, desc->pd_mechanisms,
606 rand_mi = &desc->pd_mechanisms[mcount - 1];
614 bcopy(info->pi_mechanisms, desc->pd_mechanisms,
623 for (mech_idx = 0; mech_idx < desc->pd_mech_list_count; mech_idx++) {
624 crypto_mech_info_t *mi = &desc->pd_mechanisms[mech_idx];
632 if (desc->pd_flags & CRYPTO_HASH_NO_UPDATE &&
646 desc->pd_hash_limit = mi->cm_max_input_length;
650 if ((err = kcf_add_mech_provider(mech_idx, desc, &pmd)) !=
667 if (desc_use_count == 0 && desc->pd_prov_type == CRYPTO_SW_PROVIDER)
679 desc->pd_mechanisms[cleanup_idx].cm_mech_name, desc);
722 undo_register_provider(kcf_provider_desc_t *desc, boolean_t remove_prov)
727 for (mech_idx = 0; mech_idx < desc->pd_mech_list_count;
730 desc->pd_mechanisms[mech_idx].cm_mech_name, desc);
735 (void) kcf_prov_tab_rem_provider(desc->pd_prov_id);
912 delete_kstat(kcf_provider_desc_t *desc)
915 if (desc->pd_kstat != NULL) {
916 kcf_provider_desc_t *kspd = desc->pd_kstat->ks_private;
918 /* release reference held by desc->pd_kstat->ks_private */
919 ASSERT(desc == kspd);
921 desc->pd_kstat = NULL;