diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c index 639168effac4c23b8df914bfc99b2c9a5563bcfb..0ae1ed93afb28380deced7ae3adebef20fba6429 100644 --- a/src/conf/domain_addr.c +++ b/src/conf/domain_addr.c @@ -355,6 +355,20 @@ virDomainPCIAddressBusSetModel(virDomainPCIAddressBusPtr bus, } +bool +virDomainPCIAddressBusIsFullyReserved(virDomainPCIAddressBusPtr bus) +{ + size_t i; + + for (i = bus->minSlot; i <= bus->maxSlot; i++) { + if (!bus->slot[i].functions) + return false; + } + + return true; +} + + /* Ensure addr fits in the address set, by expanding it if needed * * Return value: diff --git a/src/conf/domain_addr.h b/src/conf/domain_addr.h index f884b8af2bb6909855bac7c167d5337d3f6d8279..c90a335919be8eb2010e7d52d1dfdbbc4a5bba01 100644 --- a/src/conf/domain_addr.h +++ b/src/conf/domain_addr.h @@ -141,6 +141,9 @@ int virDomainPCIAddressBusSetModel(virDomainPCIAddressBusPtr bus, virDomainControllerModelPCI model) ATTRIBUTE_NONNULL(1); +bool virDomainPCIAddressBusIsFullyReserved(virDomainPCIAddressBusPtr bus) + ATTRIBUTE_NONNULL(1); + bool virDomainPCIAddressSlotInUse(virDomainPCIAddressSetPtr addrs, virPCIDeviceAddressPtr addr) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 440a563166b7839450e5f8a3804097c2f548d802..235725199c575db11a25cd4aa178c758566b5b12 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -106,6 +106,7 @@ virDomainCCWAddressSetFree; virDomainCCWAddressValidate; virDomainGetBlkioParametersAssignFromDef; virDomainPCIAddressAsString; +virDomainPCIAddressBusIsFullyReserved; virDomainPCIAddressBusSetModel; virDomainPCIAddressEnsureAddr; virDomainPCIAddressFlagsCompatible; diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index b5b863fe4d50bb5de352c4c0fa38e9e063f291a9..efc698da13433b2c1cbcdd03045054025e653d0b 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -1499,19 +1499,6 @@ qemuDomainValidateDevicePCISlotsChipsets(virDomainDefPtr def, } -static bool -qemuDomainPCIBusFullyReserved(virDomainPCIAddressBusPtr bus) -{ - size_t i; - - for (i = bus->minSlot; i <= bus->maxSlot; i++) - if (!bus->slot[i].functions) - return false; - - return true; -} - - /* * This assigns static PCI slots to all configured devices. * The ordering here is chosen to match the ordering used @@ -2043,7 +2030,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def, bool buses_reserved = true; for (i = 0; i < addrs->nbuses; i++) { - if (!qemuDomainPCIBusFullyReserved(&addrs->buses[i])) { + if (!virDomainPCIAddressBusIsFullyReserved(&addrs->buses[i])) { buses_reserved = false; break; }