Lines Matching refs:drives
325 static descriptor_t **apply_filter(descriptor_t **drives, int filter[],
385 descriptor_t **drives; in drive_get_assocs() local
389 drives = (descriptor_t **)calloc(2, sizeof (descriptor_t *)); in drive_get_assocs()
390 if (drives == NULL) { in drive_get_assocs()
395 drives[0] = cache_get_desc(DM_DRIVE, desc->p.disk, NULL, NULL, errp); in drive_get_assocs()
397 cache_free_descriptors(drives); in drive_get_assocs()
401 drives[1] = NULL; in drive_get_assocs()
403 return (drives); in drive_get_assocs()
444 descriptor_t **drives; in drive_get_descriptor_by_name() local
453 drives = cache_get_descriptors(DM_DRIVE, errp); in drive_get_descriptor_by_name()
463 for (i = 0; drives[i]; i++) { in drive_get_descriptor_by_name()
464 if (drive == NULL && drives[i]->p.disk->devid != NULL && in drive_get_descriptor_by_name()
465 devid_compare(devid, drives[i]->p.disk->devid) == 0) { in drive_get_descriptor_by_name()
466 drive = drives[i]; in drive_get_descriptor_by_name()
470 cache_free_descriptor(drives[i]); in drive_get_descriptor_by_name()
473 free(drives); in drive_get_descriptor_by_name()
486 descriptor_t **drives; in drive_get_descriptors() local
488 drives = cache_get_descriptors(DM_DRIVE, errp); in drive_get_descriptors()
495 found = apply_filter(drives, filter, errp); in drive_get_descriptors()
497 drives = NULL; in drive_get_descriptors()
499 drives = found; in drive_get_descriptors()
503 return (drives); in drive_get_descriptors()
645 apply_filter(descriptor_t **drives, int filter[], int *errp) in apply_filter() argument
653 for (cnt = 0; drives[cnt]; cnt++); in apply_filter()
658 cache_free_descriptors(drives); in apply_filter()
663 for (i = 0; drives[i]; i++) { in apply_filter()
668 get_drive_type(drives[i]->p.disk, -1); in apply_filter()
672 if (drives[i]->p.disk->drv_type == filter[j]) { in apply_filter()
673 found[pos++] = drives[i]; in apply_filter()
680 cache_free_descriptor(drives[i]); in apply_filter()
684 free(drives); in apply_filter()