Lines Matching defs:dhp

221 	dls_head_t *dhp = (dls_head_t *)val;
227 mutex_enter(&dhp->dh_lock);
228 if (dhp->dh_removing) {
229 mutex_exit(&dhp->dh_lock);
232 dhp->dh_ref++;
233 mutex_exit(&dhp->dh_lock);
238 i_dls_head_rele(dls_head_t *dhp)
240 mutex_enter(&dhp->dh_lock);
241 dhp->dh_ref--;
242 if (dhp->dh_ref == 0 && dhp->dh_removing != 0)
243 cv_broadcast(&dhp->dh_cv);
244 mutex_exit(&dhp->dh_lock);
250 dls_head_t *dhp;
252 dhp = kmem_zalloc(sizeof (dls_head_t), KM_SLEEP);
253 dhp->dh_key = key;
254 return (dhp);
258 i_dls_head_free(dls_head_t *dhp)
260 ASSERT(dhp->dh_ref == 0);
261 kmem_free(dhp, sizeof (dls_head_t));
277 dls_head_t *dhp;
298 if (mod_hash_find_cb_rval(hash, key, (mod_hash_val_t *)&dhp,
306 for (dsp = dhp->dh_list; dsp != NULL; dsp = dsp->ds_next) {
328 i_dls_head_rele(dhp);
341 dls_head_t *dhp;
419 if (mod_hash_find_cb_rval(hash, key, (mod_hash_val_t *)&dhp,
428 for (dsp = dhp->dh_list; dsp != NULL; dsp = dsp->ds_next)
437 i_dls_head_rele(dhp);
487 i_dls_head_rele(dhp);
553 dls_head_t *dhp;
567 (mod_hash_val_t *)&dhp) != 0)
916 dls_head_t *dhp;
930 if ((err = mod_hash_find(hash, key, (mod_hash_val_t *)&dhp)) != 0) {
933 dhp = i_dls_head_alloc(key);
934 err = mod_hash_insert(hash, key, (mod_hash_val_t)dhp);
945 p = dhp->dh_list;
950 dhp->dh_list = dsp;
955 dsp->ds_head = dhp;
965 dls_head_t *dhp;
980 dhp = dsp->ds_head;
982 mutex_enter(&dhp->dh_lock);
983 dhp->dh_removing = B_TRUE;
984 while (dhp->dh_ref != 0)
985 cv_wait(&dhp->dh_cv, &dhp->dh_lock);
986 mutex_exit(&dhp->dh_lock);
991 for (pp = &dhp->dh_list; (p = *pp) != NULL; pp = &(p->ds_next)) {
1003 if (dhp->dh_list == NULL) {
1009 (void) mod_hash_remove(hash, dhp->dh_key, &val);
1010 ASSERT(dhp == (dls_head_t *)val);
1011 i_dls_head_free(dhp);
1013 mutex_enter(&dhp->dh_lock);
1014 dhp->dh_removing = B_FALSE;
1015 mutex_exit(&dhp->dh_lock);