* [Qemu-devel] [6592] qemu: add pci helper functions (Marcelo Tosatti)
@ 2009-02-11 15:19 Anthony Liguori
0 siblings, 0 replies; only message in thread
From: Anthony Liguori @ 2009-02-11 15:19 UTC (permalink / raw)
To: qemu-devel
Revision: 6592
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6592
Author: aliguori
Date: 2009-02-11 15:19:46 +0000 (Wed, 11 Feb 2009)
Log Message:
-----------
qemu: add pci helper functions (Marcelo Tosatti)
Add pci_find_bus/pci_find_device to be used by PCI hotplug.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Modified Paths:
--------------
trunk/hw/pci.c
trunk/hw/pci.h
Modified: trunk/hw/pci.c
===================================================================
--- trunk/hw/pci.c 2009-02-11 15:19:16 UTC (rev 6591)
+++ trunk/hw/pci.c 2009-02-11 15:19:46 UTC (rev 6592)
@@ -711,6 +711,26 @@
pci_default_write_config(d, address, val, len);
}
+PCIBus *pci_find_bus(int bus_num)
+{
+ PCIBus *bus = first_bus;
+
+ while (bus && bus->bus_num != bus_num)
+ bus = bus->next;
+
+ return bus;
+}
+
+PCIDevice *pci_find_device(int bus_num, int slot, int function)
+{
+ PCIBus *bus = pci_find_bus(bus_num);
+
+ if (!bus)
+ return NULL;
+
+ return bus->devices[PCI_DEVFN(slot, function)];
+}
+
PCIBus *pci_bridge_init(PCIBus *bus, int devfn, uint16_t vid, uint16_t did,
pci_map_irq_fn map_irq, const char *name)
{
Modified: trunk/hw/pci.h
===================================================================
--- trunk/hw/pci.h 2009-02-11 15:19:16 UTC (rev 6591)
+++ trunk/hw/pci.h 2009-02-11 15:19:46 UTC (rev 6592)
@@ -8,6 +8,10 @@
extern target_phys_addr_t pci_mem_base;
+#define PCI_DEVFN(slot, func) ((((slot) & 0x1f) << 3) | ((func) & 0x07))
+#define PCI_SLOT(devfn) (((devfn) >> 3) & 0x1f)
+#define PCI_FUNC(devfn) ((devfn) & 0x07)
+
/* Device classes and subclasses */
#define PCI_CLASS_STORAGE_SCSI 0x0100
@@ -222,6 +226,8 @@
uint32_t pci_data_read(void *opaque, uint32_t addr, int len);
int pci_bus_num(PCIBus *s);
void pci_for_each_device(int bus_num, void (*fn)(PCIDevice *d));
+PCIBus *pci_find_bus(int bus_num);
+PCIDevice *pci_find_device(int bus_num, int slot, int function);
void pci_info(void);
PCIBus *pci_bridge_init(PCIBus *bus, int devfn, uint16_t vid, uint16_t did,
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-02-11 15:19 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-11 15:19 [Qemu-devel] [6592] qemu: add pci helper functions (Marcelo Tosatti) Anthony Liguori
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).