summary refs log tree commit diff stats
path: root/hw/pci.c
diff options
context:
space:
mode:
authorIsaku Yamahata <yamahata@valinux.co.jp>2009-10-30 21:21:24 +0900
committerAnthony Liguori <aliguori@us.ibm.com>2009-11-09 08:43:10 -0600
commit1074df4f29706c45c2754ec78b22c2d28504ebdf (patch)
tree7d8a0351b5d0b29d402f74216a0fb47e6544a1bf /hw/pci.c
parenta9688570678bbecb76394ea832ecded2765d51e5 (diff)
downloadfocaccia-qemu-1074df4f29706c45c2754ec78b22c2d28504ebdf.tar.gz
focaccia-qemu-1074df4f29706c45c2754ec78b22c2d28504ebdf.zip
pci: factor out pci_for_each_device().
split out device iteration logic from pci_for_each_device().
factored out function, pci_for_each_device_under_bus() will be used later.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/pci.c')
-rw-r--r--hw/pci.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/hw/pci.c b/hw/pci.c
index b43f6c668b..d565f6edbf 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -885,19 +885,26 @@ static void pci_info_device(PCIBus *bus, PCIDevice *d)
     }
 }
 
-void pci_for_each_device(PCIBus *bus, int bus_num,
-                         void (*fn)(PCIBus *b, PCIDevice *d))
+static void pci_for_each_device_under_bus(PCIBus *bus,
+                                          void (*fn)(PCIBus *b, PCIDevice *d))
 {
     PCIDevice *d;
     int devfn;
 
+    for(devfn = 0; devfn < 256; devfn++) {
+        d = bus->devices[devfn];
+        if (d)
+            fn(bus, d);
+    }
+}
+
+void pci_for_each_device(PCIBus *bus, int bus_num,
+                         void (*fn)(PCIBus *b, PCIDevice *d))
+{
     bus = pci_find_bus(bus, bus_num);
+
     if (bus) {
-        for(devfn = 0; devfn < 256; devfn++) {
-            d = bus->devices[devfn];
-            if (d)
-                fn(bus, d);
-        }
+        pci_for_each_device_under_bus(bus, fn);
     }
 }