[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PULL 07/29] hw/pci/pci.h: Don't include qemu-common.h

From: Paolo Bonzini
Subject: [Qemu-devel] [PULL 07/29] hw/pci/pci.h: Don't include qemu-common.h
Date: Tue, 22 Mar 2016 15:16:47 +0100

From: Markus Armbruster <address@hidden>

qemu-common.h should only be included by .c files.  Its file comment
explains why: "No header file should depend on qemu-common.h, as this
would easily lead to circular header dependencies."

hw/pci/pci.h includes qemu-common.h, but its users only need pcibus_t
and PCIHostDeviceAddress from it.  Move them to hw/pci/pci.h and drop
the ill-advised include.  Include hw/pci/pci.h where the moved stuff
is now missing.  Except we can't in target-i386/kvm_i386.h, because
that would break the i386-linux-user compile.  Add
PCIHostDeviceAddress to qemu/typedefs.h instead.

Signed-off-by: Markus Armbruster <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
 hw/core/qdev-properties.c |  1 +
 include/hw/pci/pci.h      | 11 +++++++++--
 include/qemu-common.h     |  9 ---------
 include/qemu/typedefs.h   |  1 +
 4 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index eef932c..a8c77ec 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -2,6 +2,7 @@
 #include "net/net.h"
 #include "hw/qdev.h"
 #include "qapi/error.h"
+#include "hw/pci/pci.h"
 #include "qapi/qmp/qerror.h"
 #include "qemu/error-report.h"
 #include "sysemu/block-backend.h"
diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
index 0be07c8..ef6ba51 100644
--- a/include/hw/pci/pci.h
+++ b/include/hw/pci/pci.h
@@ -1,8 +1,6 @@
 #ifndef QEMU_PCI_H
 #define QEMU_PCI_H
-#include "qemu-common.h"
 #include "hw/qdev.h"
 #include "exec/memory.h"
 #include "sysemu/dma.h"
@@ -97,6 +95,15 @@
 #define FMT_PCIBUS                      PRIx64
+typedef uint64_t pcibus_t;
+struct PCIHostDeviceAddress {
+    unsigned int domain;
+    unsigned int bus;
+    unsigned int slot;
+    unsigned int function;
 typedef void PCIConfigWriteFunc(PCIDevice *pci_dev,
                                 uint32_t address, uint32_t data, int len);
 typedef uint32_t PCIConfigReadFunc(PCIDevice *pci_dev,
diff --git a/include/qemu-common.h b/include/qemu-common.h
index ba37968..5a2d997 100644
--- a/include/qemu-common.h
+++ b/include/qemu-common.h
@@ -310,15 +310,6 @@ struct ParallelIOArg {
 typedef int (*DMA_transfer_handler) (void *opaque, int nchan, int pos, int 
-typedef uint64_t pcibus_t;
-typedef struct PCIHostDeviceAddress {
-    unsigned int domain;
-    unsigned int bus;
-    unsigned int slot;
-    unsigned int function;
-} PCIHostDeviceAddress;
 void tcg_exec_init(unsigned long tb_size);
 bool tcg_enabled(void);
diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h
index c987db6..1dcf6f5 100644
--- a/include/qemu/typedefs.h
+++ b/include/qemu/typedefs.h
@@ -66,6 +66,7 @@ typedef struct PCIEPort PCIEPort;
 typedef struct PCIESlot PCIESlot;
 typedef struct PCIExpressDevice PCIExpressDevice;
 typedef struct PCIExpressHost PCIExpressHost;
+typedef struct PCIHostDeviceAddress PCIHostDeviceAddress;
 typedef struct PCIHostState PCIHostState;
 typedef struct PCMachineClass PCMachineClass;
 typedef struct PCMachineState PCMachineState;

reply via email to

[Prev in Thread] Current Thread [Next in Thread]