[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 19/24] pseries: Export find_phb() utility function f
From: |
Alexander Graf |
Subject: |
[Qemu-devel] [PATCH 19/24] pseries: Export find_phb() utility function for PCI code |
Date: |
Wed, 15 Aug 2012 11:58:57 +0200 |
From: Alexey Kardashevskiy <address@hidden>
The pseries PCI code makes use of an internal find_dev() function which
locates a PCIDevice * given a (platform specific) bus ID and device
address. Internally this needs to first locate the host bridge on which
the device resides based on the bus ID. This patch exposes that host
bridge lookup as a separate function, which we will need later in the MSI
and VFIO code.
Signed-off-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: David Gibson <address@hidden>
[agraf: drop trace.h inclusion]
Signed-off-by: Alexander Graf <address@hidden>
---
hw/spapr_pci.c | 31 +++++++++++++++++++++----------
1 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c
index fcc358e..2e38fee 100644
--- a/hw/spapr_pci.c
+++ b/hw/spapr_pci.c
@@ -32,24 +32,35 @@
#include "hw/pci_internals.h"
-static PCIDevice *find_dev(sPAPREnvironment *spapr,
- uint64_t buid, uint32_t config_addr)
+static sPAPRPHBState *find_phb(sPAPREnvironment *spapr, uint64_t buid)
{
- int devfn = (config_addr >> 8) & 0xFF;
sPAPRPHBState *phb;
QLIST_FOREACH(phb, &spapr->phbs, list) {
- BusChild *kid;
-
if (phb->buid != buid) {
continue;
}
+ return phb;
+ }
+
+ return NULL;
+}
+
+static PCIDevice *find_dev(sPAPREnvironment *spapr, uint64_t buid,
+ uint32_t config_addr)
+{
+ sPAPRPHBState *phb = find_phb(spapr, buid);
+ BusChild *kid;
+ int devfn = (config_addr >> 8) & 0xFF;
+
+ if (!phb) {
+ return NULL;
+ }
- QTAILQ_FOREACH(kid, &phb->host_state.bus->qbus.children, sibling) {
- PCIDevice *dev = (PCIDevice *)kid->child;
- if (dev->devfn == devfn) {
- return dev;
- }
+ QTAILQ_FOREACH(kid, &phb->host_state.bus->qbus.children, sibling) {
+ PCIDevice *dev = (PCIDevice *)kid->child;
+ if (dev->devfn == devfn) {
+ return dev;
}
}
--
1.6.0.2
- [Qemu-devel] [PATCH 05/24] PPC: e500: split mpc8544ds machine from generic e500 code, (continued)
- [Qemu-devel] [PATCH 05/24] PPC: e500: split mpc8544ds machine from generic e500 code, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 06/24] PPC: e500: add generic e500 platform, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 07/24] ppc: Fix bug in handling of PAPR hypercall exits, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 08/24] Revert "PPC: e500: Use new MPIC dt format", Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 11/24] xbzrle: fix compilation on ppc32, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 09/24] Add one new file vga-pci.h and cleanup on all platforms, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 13/24] PPC: spapr: Remove global variable, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 10/24] spapr: Add support for -vga option, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 12/24] PPC: spapr: Rework VGA select logic, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 15/24] pseries: Remove extraneous prints, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 19/24] pseries: Export find_phb() utility function for PCI code,
Alexander Graf <=
- [Qemu-devel] [PATCH 17/24] pseries: Separate PCI RTAS setup from common from emulation specific PCI setup, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 16/24] pseries: Rework irq assignment to avoid carrying qemu_irqs around, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 22/24] pseries dma: DMA window params added to PHB and DT population changed, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 20/24] pseries: Add trace event for PCI irqs, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 23/24] pseries: Update SLOF firmware image, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 24/24] openpic: Added BRR1 register, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 21/24] pseries: Add PCI MSI/MSI-X support, Alexander Graf, 2012/08/15
- [Qemu-devel] [PATCH 18/24] pseries: added allocator for a block of IRQs, Alexander Graf, 2012/08/15