[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 18/24] hw/pci: implement itera
From: |
Marcel Apfelbaum |
Subject: |
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 18/24] hw/pci: implement iteration over multiple host bridges |
Date: |
Thu, 5 Mar 2015 16:55:16 +0200 |
From: Marcel Apfelbaum <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>
---
hw/pci/pci.c | 8 ++++----
include/hw/pci/pci_host.h | 4 ++++
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 53598bd..f0cf752 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -69,7 +69,7 @@ static void pci_del_option_rom(PCIDevice *pdev);
static uint16_t pci_default_sub_vendor_id = PCI_SUBVENDOR_ID_REDHAT_QUMRANET;
static uint16_t pci_default_sub_device_id = PCI_SUBDEVICE_ID_QEMU;
-static QLIST_HEAD(, PCIHostState) pci_host_bridges;
+struct PCIHostQ pci_host_bridges = QLIST_HEAD_INITIALIZER(pci_host_bridges);
static int pci_bar(PCIDevice *d, int reg)
{
@@ -190,7 +190,7 @@ PCIBus *pci_find_primary_bus(void)
PCIBus *primary_bus = NULL;
PCIHostState *host;
- QLIST_FOREACH(host, &pci_host_bridges, next) {
+ HOST_BRIDGE_FOREACH(host) {
if (primary_bus) {
/* We have multiple root buses, refuse to select a primary */
return NULL;
@@ -1264,7 +1264,7 @@ PciInfoList *qmp_query_pci(Error **errp)
PciInfoList *info, *head = NULL, *cur_item = NULL;
PCIHostState *host_bridge;
- QLIST_FOREACH(host_bridge, &pci_host_bridges, next) {
+ HOST_BRIDGE_FOREACH(host_bridge) {
info = g_malloc0(sizeof(*info));
info->value = qmp_query_pci_bus(host_bridge->bus,
pci_bus_num(host_bridge->bus));
@@ -1802,7 +1802,7 @@ int pci_qdev_find_device(const char *id, PCIDevice **pdev)
PCIHostState *host_bridge;
int rc = -ENODEV;
- QLIST_FOREACH(host_bridge, &pci_host_bridges, next) {
+ HOST_BRIDGE_FOREACH(host_bridge) {
int tmp = pci_qdev_find_recursive(host_bridge->bus, id, pdev);
if (!tmp) {
rc = 0;
diff --git a/include/hw/pci/pci_host.h b/include/hw/pci/pci_host.h
index 3c72e26..ba5272f 100644
--- a/include/hw/pci/pci_host.h
+++ b/include/hw/pci/pci_host.h
@@ -63,6 +63,10 @@ typedef struct PCIHostBridgeClass {
const char *(*root_bus_path)(PCIHostState *, PCIBus *);
} PCIHostBridgeClass;
+QLIST_HEAD(PCIHostQ, PCIHostState);
+extern struct PCIHostQ pci_host_bridges;
+#define HOST_BRIDGE_FOREACH(host) QLIST_FOREACH(host, &pci_host_bridges, next)
+
/* common internal helpers for PCI/PCIe hosts, cut off overflows */
void pci_host_config_write_common(PCIDevice *pci_dev, uint32_t addr,
uint32_t limit, uint32_t val, uint32_t len);
--
2.1.0
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 10/24] hw/apci: add _PRT method for extra PCI root busses, (continued)
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 10/24] hw/apci: add _PRT method for extra PCI root busses, Michael S. Tsirkin, 2015/03/08
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 10/24] hw/apci: add _PRT method for extra PCI root busses, Marcel Apfelbaum, 2015/03/08
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 10/24] hw/apci: add _PRT method for extra PCI root busses, Michael S. Tsirkin, 2015/03/08
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 10/24] hw/apci: add _PRT method for extra PCI root busses, Marcel Apfelbaum, 2015/03/08
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 10/24] hw/apci: add _PRT method for extra PCI root busses, Michael S. Tsirkin, 2015/03/08
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 10/24] hw/apci: add _PRT method for extra PCI root busses, Marcel Apfelbaum, 2015/03/08
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 14/24] hw/pci: made pci_bus_is_root a PCIBusClass method, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 13/24] hw/pci: move pci bus related code to separate files, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 16/24] hw/pci: introduce TYPE_PCI_MAIN_HOST_BRIDGE interface, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 17/24] hw/pci: removed 'rootbus nr is 0' assumption from qmp_pci_query, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 18/24] hw/pci: implement iteration over multiple host bridges,
Marcel Apfelbaum <=
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 20/24] hw/pci: inform bios if the system has more than one pci bridge, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 21/24] hw/pci: piix - suport multiple host bridges, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 22/24] hw/pxb: add map_irq func, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 24/24] hw/pxb: add numa_node parameter, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 12/24] hw/acpi: remove from root bus 0 the crs resources used by other busses., Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 11/24] hw/acpi: add _CRS method for extra root busses, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 19/24] hw/pci: introduce PCI Expander Bridge (PXB), Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 23/24] hw/pci_bus: add support for NUMA nodes, Marcel Apfelbaum, 2015/03/05
[Qemu-ppc] [Qemu-devel] [PATCH v3 for-2.3 15/24] hw/pci: made pci_bus_num a PCIBusClass method, Marcel Apfelbaum, 2015/03/05