@@ -12,44 +12,15 @@
*/
#include "hw/sysbus.h"
-#include "hw/pci/pci.h"
-#include "hw/pci/pci_bus.h"
-#include "hw/pci/pci_host.h"
+#include "hw/pci-host/pci_generic.h"
#include "exec/address-spaces.h"
-typedef struct {
- PCIHostState parent_obj;
-
- qemu_irq irq[4];
- MemoryRegion mem_config;
- /* Containers representing the PCI address spaces */
- MemoryRegion pci_io_space;
- MemoryRegion pci_mem_space;
- /* Alias regions into PCI address spaces which we expose as sysbus regions.
- * The offsets into pci_mem_space are controlled by the imap registers.
- */
- MemoryRegion pci_io_window;
- MemoryRegion pci_mem_window;
- PCIBus pci_bus;
- PCIDevice pci_dev;
-} PCIVPBState;
-
-
static const VMStateDescription pci_generic_host_vmstate = {
.name = "generic-host-pci",
.version_id = 1,
.minimum_version_id = 1,
};
-#define TYPE_GENERIC_PCI "generic_pci"
-#define PCI_GEN(obj) \
- OBJECT_CHECK(PCIVPBState, (obj), TYPE_GENERIC_PCI)
-
-#define TYPE_GENERIC_PCI_HOST "generic_pci_host"
-#define PCI_GEN_HOST(obj) \
- OBJECT_CHECK(PCIDevice, (obj), TYPE_GENERIC_PCIHOST)
-
-
static void pci_cam_config_write(void *opaque, hwaddr addr,
uint64_t val, unsigned size)
{
new file mode 100644
@@ -0,0 +1,33 @@
+#ifndef QEMU_GENERIC_PCI_H
+#define QEMU_GENERIC_PCI_H
+
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_bus.h"
+#include "hw/pci/pci_host.h"
+
+typedef struct {
+ PCIHostState parent_obj;
+
+ qemu_irq irq[4];
+ MemoryRegion mem_config;
+ /* Containers representing the PCI address spaces */
+ MemoryRegion pci_io_space;
+ MemoryRegion pci_mem_space;
+ /* Alias regions into PCI address spaces which we expose as sysbus regions.
+ * The offsets into pci_mem_space are controlled by the imap registers.
+ */
+ MemoryRegion pci_io_window;
+ MemoryRegion pci_mem_window;
+ PCIBus pci_bus;
+ PCIDevice pci_dev;
+} PCIVPBState;
+
+#define TYPE_GENERIC_PCI "generic_pci"
+#define PCI_GEN(obj) \
+ OBJECT_CHECK(PCIVPBState, (obj), TYPE_GENERIC_PCI)
+
+#define TYPE_GENERIC_PCI_HOST "generic_pci_host"
+#define PCI_GEN_HOST(obj) \
+ OBJECT_CHECK(PCIDevice, (obj), TYPE_GENERIC_PCIHOST)
+
+#endif
As a matter of fact, the mach-virt platform needs some definitions of the generic_pci device. Note: Including the device header file in the mach-virt platform can be avoided extending properly the idea present in "[PATCH 4/7] hw/arm/virt: Support dynamically spawned sysbus devices". Signed-off-by: Alvise Rigo <a.rigo@virtualopensystems.com> --- hw/pci-host/generic-pci.c | 31 +------------------------------ include/hw/pci-host/pci_generic.h | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 30 deletions(-) create mode 100644 include/hw/pci-host/pci_generic.h