diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 394890e8be..892d7d77ee 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -12349,6 +12349,17 @@ virDomainDiskIndexByAddress(virDomainDefPtr def, return -1; } +virDomainDiskDefPtr +virDomainDiskByAddress(virDomainDefPtr def, + virDevicePCIAddressPtr pci_address, + unsigned int bus, + unsigned int target, + unsigned int unit) +{ + int idx = virDomainDiskIndexByAddress(def, pci_address, bus, target, unit); + return idx < 0 ? NULL : def->disks[idx]; +} + int virDomainDiskIndexByName(virDomainDefPtr def, const char *name, bool allow_ambiguous) @@ -12388,6 +12399,15 @@ virDomainDiskPathByName(virDomainDefPtr def, const char *name) return idx < 0 ? NULL : virDomainDiskGetSource(def->disks[idx]); } +virDomainDiskDefPtr +virDomainDiskByName(virDomainDefPtr def, + const char *name, + bool allow_ambiguous) +{ + int idx = virDomainDiskIndexByName(def, name, allow_ambiguous); + return idx < 0 ? NULL : def->disks[idx]; +} + int virDomainDiskInsert(virDomainDefPtr def, virDomainDiskDefPtr disk) { diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index f93d73ef10..f27f2e4814 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2685,8 +2685,16 @@ int virDomainDiskIndexByAddress(virDomainDefPtr def, virDevicePCIAddressPtr pci_controller, unsigned int bus, unsigned int target, unsigned int unit); +virDomainDiskDefPtr virDomainDiskByAddress(virDomainDefPtr def, + virDevicePCIAddressPtr pci_controller, + unsigned int bus, + unsigned int target, + unsigned int unit); int virDomainDiskIndexByName(virDomainDefPtr def, const char *name, bool allow_ambiguous); +virDomainDiskDefPtr virDomainDiskByName(virDomainDefPtr def, + const char *name, + bool allow_ambiguous); const char *virDomainDiskPathByName(virDomainDefPtr, const char *name); int virDomainDiskInsert(virDomainDefPtr def, virDomainDiskDefPtr disk) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 15e71d5629..6a95fb9916 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -238,6 +238,8 @@ virDomainDeviceInfoCopy; virDomainDeviceInfoIterate; virDomainDeviceTypeToString; virDomainDiskBusTypeToString; +virDomainDiskByAddress; +virDomainDiskByName; virDomainDiskCacheTypeFromString; virDomainDiskCacheTypeToString; virDomainDiskDefAssignAddress;