[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 1/8] seabios: pci: introduce foreachpci_in_bus()
From: |
Isaku Yamahata |
Subject: |
[Qemu-devel] [PATCH v2 1/8] seabios: pci: introduce foreachpci_in_bus() helper macro. |
Date: |
Tue, 22 Jun 2010 17:57:46 +0900 |
This patch introduces foreachpci_in_bus() helper macro for
depth first recursion. foreachpci() is for width first recursion.
The macro will be used later to initialize pci bridge
that requires depth first recursion.
Signed-off-by: Isaku Yamahata <address@hidden>
---
changes v1 -> v2:
- simplified according to Kevin's suggestion.
---
src/pci.h | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/src/pci.h b/src/pci.h
index 8a21c06..e40e116 100644
--- a/src/pci.h
+++ b/src/pci.h
@@ -21,6 +21,9 @@ static inline u8 pci_bdf_to_fn(u16 bdf) {
static inline u16 pci_to_bdf(int bus, int dev, int fn) {
return (bus<<8) | (dev<<3) | fn;
}
+static inline u16 pci_bus_devfn_to_bdf(int bus, u16 devfn) {
+ return (bus << 8) | devfn;
+}
static inline u32 pci_vd(u16 vendor, u16 device) {
return (device << 16) | vendor;
@@ -50,6 +53,13 @@ int pci_next(int bdf, int *pmax);
; BDF >= 0 \
; BDF=pci_next(BDF+1, &MAX))
+#define foreachpci_in_bus(BDF, MAX, BUS) \
+ for (MAX = pci_bus_devfn_to_bdf(BUS, 0) + 0x0100, \
+ BDF = pci_next(pci_bus_devfn_to_bdf(BUS, 0), &MAX) \
+ ; BDF >= 0 && BDF < pci_bus_devfn_to_bdf(BUS, 0) + 0x0100 \
+ ; MAX = pci_bus_devfn_to_bdf(BUS, 0) + 0x0100, \
+ BDF = pci_next(BDF + 1, &MAX))
+
// pirtable.c
void create_pirtable(void);
--
1.6.6.1
- [Qemu-devel] [PATCH v2 0/8] seabios: pci: multi pci bus support, Isaku Yamahata, 2010/06/22
- [Qemu-devel] [PATCH v2 5/8] seabios: pciinit: factor out bar offset calculation., Isaku Yamahata, 2010/06/22
- [Qemu-devel] [PATCH v2 3/8] seabios: pciinit: make pci memory space assignment 64bit aware., Isaku Yamahata, 2010/06/22
- [Qemu-devel] [PATCH v2 8/8] seabios: pciinit: initialize pci bridge filtering registers., Isaku Yamahata, 2010/06/22
- [Qemu-devel] [PATCH v2 1/8] seabios: pci: introduce foreachpci_in_bus() helper macro.,
Isaku Yamahata <=
- [Qemu-devel] [PATCH v2 4/8] seabios: pciinit: make pci bar assigner preferchable memory aware., Isaku Yamahata, 2010/06/22
- [Qemu-devel] [PATCH v2 6/8] seabios: pciinit: make bar offset calculation pci bridge aware., Isaku Yamahata, 2010/06/22
- [Qemu-devel] [PATCH v2 7/8] seabios: pciinit: pci bridge bus initialization., Isaku Yamahata, 2010/06/22
- [Qemu-devel] [PATCH v2 2/8] seabios: pciinit: factor out pci bar region allocation logic., Isaku Yamahata, 2010/06/22