[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 23/30] libqos: allow qpci_iomap to return BAR map
From: |
John Snow |
Subject: |
[Qemu-devel] [PATCH v2 23/30] libqos: allow qpci_iomap to return BAR mapping size |
Date: |
Mon, 4 Aug 2014 17:11:24 -0400 |
This patch allows qpci_iomap to return the size of the
BAR mapping that it created, to allow driver applications
(e.g, ahci-test) to make determinations about the suitability
or the mapping size, or in the specific case of AHCI, how
many ports are supported by the HBA.
Signed-off-by: John Snow <address@hidden>
---
tests/ide-test.c | 2 +-
tests/libqos/pci-pc.c | 5 ++++-
tests/libqos/pci.c | 4 ++--
tests/libqos/pci.h | 4 ++--
tests/usb-hcd-ehci-test.c | 2 +-
5 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/tests/ide-test.c b/tests/ide-test.c
index 151ef30..e2b4efc 100644
--- a/tests/ide-test.c
+++ b/tests/ide-test.c
@@ -146,7 +146,7 @@ static QPCIDevice *get_pci_device(uint16_t *bmdma_base)
g_assert(device_id == PCI_DEVICE_ID_INTEL_82371SB_1);
/* Map bmdma BAR */
- *bmdma_base = (uint16_t)(uintptr_t) qpci_iomap(dev, 4);
+ *bmdma_base = (uint16_t)(uintptr_t) qpci_iomap(dev, 4, NULL);
qpci_device_enable(dev);
diff --git a/tests/libqos/pci-pc.c b/tests/libqos/pci-pc.c
index f5d6469..0609294 100644
--- a/tests/libqos/pci-pc.c
+++ b/tests/libqos/pci-pc.c
@@ -144,7 +144,7 @@ static void qpci_pc_config_writel(QPCIBus *bus, int devfn,
uint8_t offset, uint3
outl(0xcfc, value);
}
-static void *qpci_pc_iomap(QPCIBus *bus, QPCIDevice *dev, int barno)
+static void *qpci_pc_iomap(QPCIBus *bus, QPCIDevice *dev, int barno, uint64_t
*sizeptr)
{
QPCIBusPC *s = container_of(bus, QPCIBusPC, bus);
static const int bar_reg_map[] = {
@@ -173,6 +173,9 @@ static void *qpci_pc_iomap(QPCIBus *bus, QPCIDevice *dev,
int barno)
if (size == 0) {
return NULL;
}
+ if (sizeptr) {
+ *sizeptr = size;
+ }
if (io_type == PCI_BASE_ADDRESS_SPACE_IO) {
uint16_t loc;
diff --git a/tests/libqos/pci.c b/tests/libqos/pci.c
index c9a0b91..ce0b308 100644
--- a/tests/libqos/pci.c
+++ b/tests/libqos/pci.c
@@ -138,9 +138,9 @@ void qpci_io_writel(QPCIDevice *dev, void *data, uint32_t
value)
dev->bus->io_writel(dev->bus, data, value);
}
-void *qpci_iomap(QPCIDevice *dev, int barno)
+void *qpci_iomap(QPCIDevice *dev, int barno, uint64_t *sizeptr)
{
- return dev->bus->iomap(dev->bus, dev, barno);
+ return dev->bus->iomap(dev->bus, dev, barno, sizeptr);
}
void qpci_iounmap(QPCIDevice *dev, void *data)
diff --git a/tests/libqos/pci.h b/tests/libqos/pci.h
index 3439431..9ee048b 100644
--- a/tests/libqos/pci.h
+++ b/tests/libqos/pci.h
@@ -41,7 +41,7 @@ struct QPCIBus
void (*config_writel)(QPCIBus *bus, int devfn,
uint8_t offset, uint32_t value);
- void *(*iomap)(QPCIBus *bus, QPCIDevice *dev, int barno);
+ void *(*iomap)(QPCIBus *bus, QPCIDevice *dev, int barno, uint64_t
*sizeptr);
void (*iounmap)(QPCIBus *bus, void *data);
};
@@ -74,7 +74,7 @@ void qpci_io_writeb(QPCIDevice *dev, void *data, uint8_t
value);
void qpci_io_writew(QPCIDevice *dev, void *data, uint16_t value);
void qpci_io_writel(QPCIDevice *dev, void *data, uint32_t value);
-void *qpci_iomap(QPCIDevice *dev, int barno);
+void *qpci_iomap(QPCIDevice *dev, int barno, uint64_t *sizeptr);
void qpci_iounmap(QPCIDevice *dev, void *data);
#endif
diff --git a/tests/usb-hcd-ehci-test.c b/tests/usb-hcd-ehci-test.c
index bcdf62f..c990492 100644
--- a/tests/usb-hcd-ehci-test.c
+++ b/tests/usb-hcd-ehci-test.c
@@ -34,7 +34,7 @@ static void pci_init_one(struct qhc *hc, uint32_t devfn, int
bar)
hc->dev = qpci_device_find(pcibus, devfn);
g_assert(hc->dev != NULL);
qpci_device_enable(hc->dev);
- hc->base = qpci_iomap(hc->dev, bar);
+ hc->base = qpci_iomap(hc->dev, bar, NULL);
g_assert(hc->base != NULL);
}
--
1.9.3
- [Qemu-devel] [PATCH v2 21/30] libqtest: Correct small memory leak., (continued)
- [Qemu-devel] [PATCH v2 21/30] libqtest: Correct small memory leak., John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 19/30] qtest: Adding qtest_memset and qmemset., John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 26/30] ahci: Add test_pci_spec to ahci-test., John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 30/30] ahci: Add test_identify case to ahci-test., John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 24/30] qtest/ide: Fix small memory leak, John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 29/30] ahci: Add test_hba_enable to ahci-test., John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 20/30] libqos: Correct memory leak, John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 27/30] ahci: add test_pci_enable to ahci-test., John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 28/30] ahci: Add test_hba_spec to ahci-test., John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 22/30] libqos: Fixes a small memory leak., John Snow, 2014/08/04
- [Qemu-devel] [PATCH v2 23/30] libqos: allow qpci_iomap to return BAR mapping size,
John Snow <=
- [Qemu-devel] [PATCH v2 25/30] ahci: Adding basic functionality qtest., John Snow, 2014/08/04
- Re: [Qemu-devel] [PATCH v2 00/30] AHCI test suite framework, Stefan Hajnoczi, 2014/08/06
- Re: [Qemu-devel] [PATCH v2 00/30] AHCI test suite framework, Stefan Hajnoczi, 2014/08/11