Lines Matching defs:dmv

55 disable_dev(dm_dev_t *dmv)
58 TAILQ_REMOVE(&dm_dev_list, dmv, next_devlist);
59 mutex_enter(&dmv->dev_mtx);
61 while (dmv->ref_cnt != 0)
62 cv_wait(&dmv->dev_cv, &dmv->dev_mtx);
63 mutex_exit(&dmv->dev_mtx);
74 dm_dev_t *dmv;
80 if ((dmv = dm_dev_lookup_minor(dm_dev_minor)) != NULL) {
81 dm_dev_busy(dmv);
83 return dmv;
86 if ((dmv = dm_dev_lookup_name(dm_dev_name)) != NULL) {
87 dm_dev_busy(dmv);
89 return dmv;
92 if ((dmv = dm_dev_lookup_uuid(dm_dev_uuid)) != NULL) {
93 dm_dev_busy(dmv);
95 return dmv;
108 dm_dev_t *dmv;
110 TAILQ_FOREACH(dmv, &dm_dev_list, next_devlist)
111 if (dm_dev_minor == dmv->minor)
112 return dmv;
123 dm_dev_t *dmv;
132 TAILQ_FOREACH(dmv, &dm_dev_list, next_devlist) {
133 dlen = strlen(dmv->name);
138 if (strncmp(dm_dev_name, dmv->name, slen) == 0)
139 return dmv;
151 dm_dev_t *dmv;
160 TAILQ_FOREACH(dmv, &dm_dev_list, next_devlist) {
161 if (strlen(dmv->uuid) != len)
164 if (strncmp(dm_dev_uuid, dmv->uuid, strlen(dmv->uuid)) == 0)
165 return dmv;
177 dm_dev_t *dmv;
180 dmv = NULL;
185 if (((dmv = dm_dev_lookup_uuid(dev->uuid)) == NULL) &&
186 ((dmv = dm_dev_lookup_name(dev->name)) == NULL) &&
187 ((dmv = dm_dev_lookup_minor(dev->minor)) == NULL)) {
203 dm_dev_t *dmv;
206 TAILQ_FOREACH(dmv, &dm_dev_list, next_devlist) {
207 if (dm_dev_minor == dmv->minor) {
227 dm_dev_t *dmv;
230 TAILQ_FOREACH(dmv, &dm_dev_list, next_devlist) {
231 if (devt == dmv->devt) {
232 disable_dev(dmv);
233 return dmv;
248 dm_dev_t *dmv;
252 if ((dmv = dm_dev_lookup_minor(dm_dev_minor)) != NULL) {
253 disable_dev(dmv);
254 return dmv;
257 if ((dmv = dm_dev_lookup_name(dm_dev_name)) != NULL) {
258 disable_dev(dmv);
259 return dmv;
262 if ((dmv = dm_dev_lookup_name(dm_dev_uuid)) != NULL) {
263 disable_dev(dmv);
264 return dmv;
278 dm_dev_t *dmv;
282 dmv = TAILQ_FIRST(&dm_dev_list);
287 mutex_enter(&dmv->dev_mtx);
289 while (dmv->ref_cnt != 0)
290 cv_wait(&dmv->dev_cv, &dmv->dev_mtx);
293 dm_table_destroy(&dmv->table_head, DM_TABLE_ACTIVE);
296 dm_table_destroy(&dmv->table_head, DM_TABLE_INACTIVE);
298 dm_table_head_destroy(&dmv->table_head);
300 mutex_exit(&dmv->dev_mtx);
301 mutex_destroy(&dmv->dev_mtx);
302 cv_destroy(&dmv->dev_cv);
304 kmem_free(dmv, sizeof(dm_dev_t));
318 dm_dev_t *dmv;
320 dmv = kmem_zalloc(sizeof(dm_dev_t), KM_SLEEP);
321 dmv->diskp = kmem_zalloc(sizeof(struct disk), KM_SLEEP);
322 return dmv;
329 dm_dev_free(dm_dev_t *dmv)
332 KASSERT(dmv != NULL);
334 mutex_destroy(&dmv->dev_mtx);
335 mutex_destroy(&dmv->diskp_mtx);
336 cv_destroy(&dmv->dev_cv);
338 if (dmv->diskp != NULL)
339 kmem_free(dmv->diskp, sizeof(struct disk));
341 kmem_free(dmv, sizeof(dm_dev_t));
347 dm_dev_busy(dm_dev_t *dmv)
350 mutex_enter(&dmv->dev_mtx);
351 dmv->ref_cnt++;
352 mutex_exit(&dmv->dev_mtx);
356 dm_dev_unbusy(dm_dev_t *dmv)
359 KASSERT(dmv->ref_cnt != 0);
361 mutex_enter(&dmv->dev_mtx);
362 if (--dmv->ref_cnt == 0)
363 cv_broadcast(&dmv->dev_cv);
364 mutex_exit(&dmv->dev_mtx);
373 dm_dev_t *dmv;
381 TAILQ_FOREACH(dmv, &dm_dev_list, next_devlist) {
384 prop_dictionary_set_string(dev_dict, DM_DEV_NAME, dmv->name);
385 prop_dictionary_set_uint32(dev_dict, DM_DEV_DEV, dmv->minor);