[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 12/14] pci_host: Turn into SysBus-derived QOM typ
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PATCH v3 12/14] pci_host: Turn into SysBus-derived QOM type |
Date: |
Wed, 4 Jul 2012 19:19:31 +0200 |
From: Andreas Färber <address@hidden>
The preceding commits fixed misuses of FROM_SYSBUS() that led people to
add a bogus busdev field. For qdev the field order was less relevant but
for QOM the PCIHostState field (including the SysBusDevice actually
initialized with a value) must be placed first within the state struct.
To facilitate accessing the PCIHostState fields, derive all PCI host
bridges from TYPE_PCI_HOST_BRIDGE rather than TYPE_SYS_BUS_DEVICE.
We can now access PCIHostState QOM-style, with PCI_HOST_BRIDGE() macro.
Signed-off-by: Anthony Liguori <address@hidden>
Signed-off-by: Wanpeng Li <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
---
hw/pci_host.c | 12 ++++++++++++
hw/pci_host.h | 5 +++++
2 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/hw/pci_host.c b/hw/pci_host.c
index 8041778..3950e94 100644
--- a/hw/pci_host.c
+++ b/hw/pci_host.c
@@ -165,4 +165,16 @@ const MemoryRegionOps pci_host_data_be_ops = {
.endianness = DEVICE_BIG_ENDIAN,
};
+static const TypeInfo pci_host_type_info = {
+ .name = TYPE_PCI_HOST_BRIDGE,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .abstract = true,
+ .instance_size = sizeof(PCIHostState),
+};
+
+static void pci_host_register_types(void)
+{
+ type_register_static(&pci_host_type_info);
+}
+type_init(pci_host_register_types)
diff --git a/hw/pci_host.h b/hw/pci_host.h
index 359e38f..4b9c300 100644
--- a/hw/pci_host.h
+++ b/hw/pci_host.h
@@ -30,8 +30,13 @@
#include "sysbus.h"
+#define TYPE_PCI_HOST_BRIDGE "pci-host-bridge"
+#define PCI_HOST_BRIDGE(obj) \
+ OBJECT_CHECK(PCIHostState, (obj), TYPE_PCI_HOST_BRIDGE)
+
struct PCIHostState {
SysBusDevice busdev;
+
MemoryRegion conf_mem;
MemoryRegion data_mem;
MemoryRegion mmcfg;
--
1.7.7
- Re: [Qemu-devel] [PATCH v3 14/14] pci: Tidy up PCI host bridges, (continued)
- Message not available
- Re: [Qemu-devel] [PATCH v3 14/14] pci: Tidy up PCI host bridges, Michael S. Tsirkin, 2012/07/05
- Re: [Qemu-devel] [PATCH v3 14/14] pci: Tidy up PCI host bridges, Andreas Färber, 2012/07/05
- Re: [Qemu-devel] [PATCH v3 14/14] pci: Tidy up PCI host bridges, Anthony Liguori, 2012/07/05
- Re: [Qemu-devel] [PATCH v3 14/14] pci: Tidy up PCI host bridges, Michael S. Tsirkin, 2012/07/05
- Re: [Qemu-devel] [PATCH v3 14/14] pci: Tidy up PCI host bridges, Andreas Färber, 2012/07/05
- Re: [Qemu-devel] [PATCH v3 14/14] pci: Tidy up PCI host bridges, Michael S. Tsirkin, 2012/07/05
[Qemu-devel] [PATCH v3 12/14] pci_host: Turn into SysBus-derived QOM type,
Andreas Färber <=