On 05/03/2014 06:31 PM, Roman Bogorodskiy wrote:
Extract PCI handling related structs that could be shared
with other drivers.
List of structs moved to virpci.h and new names:
qemuDomainPCIAddressBus -> virDomainPCIAddressBus
qemuDomainPCIAddressBusPtr -> virDomainPCIAddressBusPtr
_qemuDomainPCIAddressSet -> virDomainPCIAddressSet
qemuDomainPCIAddressSetPtr -> virDomainPCIAddressSetPtr
qemuDomainPCIConnectFlags -> virDomainPCIConnectFlags
I would drop the 'Domain', to make the prefix match the file.
Also, extract qemuDomainPCIAddressAsString function and rename
it into virPCIDeviceAddressAsString.
If that was moved into the second patch, this one would touch two less files
(unless I missed something).
---
src/Makefile.am | 2 +-
src/libvirt_private.syms | 1 +
src/qemu/qemu_command.c | 201 +++++++++++++++++++----------------------------
src/qemu/qemu_command.h | 40 +++-------
src/qemu/qemu_domain.h | 5 +-
src/util/virpci.c | 14 ++++
src/util/virpci.h | 48 +++++++++++
tools/Makefile.am | 1 +
8 files changed, 158 insertions(+), 154 deletions(-)
@@ -2134,10 +2093,10 @@ int
qemuDomainPCIAddressEnsureAddr(qemuDomainPCIAddressSetPtr addrs,
* function is only used for hot-plug, though, and hot-plug is
* only supported for standard PCI devices, so we can safely use
* the setting below */
- qemuDomainPCIConnectFlags flags = (QEMU_PCI_CONNECT_HOTPLUGGABLE |
- QEMU_PCI_CONNECT_TYPE_PCI);
+ virDomainPCIConnectFlags flags = (VIR_PCI_CONNECT_HOTPLUGGABLE |
+ VIR_PCI_CONNECT_TYPE_PCI);
Indentation is off here.
- if (!(addrStr = qemuDomainPCIAddressAsString(&dev->addr.pci)))
+ if (!(addrStr = virPCIDeviceAddressAsString(&dev->addr.pci)))
goto cleanup;
if (dev->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
diff --git a/src/util/virpci.h b/src/util/virpci.h
index 20ffe54..21fe261 100644
--- a/src/util/virpci.h
+++ b/src/util/virpci.h
@@ -26,6 +26,7 @@
# include "internal.h"
# include "virobject.h"
+# include "domain_conf.h"
Hmm, this requires the Makefile changes just to get around the cross-inclusion
syntax check rule, that is probably not a good idea.
It's needed for virDevicePCIAddress and virDomainControllerModelPCI.
We have virDevicePCIAddress (defined in device_conf.h) for guest devices and
virPCIDeviceAddress (here in virpci.h) for host devices.
virDomainControllerModelPCI is needed by the PCIAddressBusSetModel set
function, which fills out the flags and {min,max}Slots and also the model,
but I can't find any function using it.
I think the right thing is to drop the include - change the guest devices to
use the address type defined here in virpci.h and stop storing the model with
the address bus.
Jan