From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53188) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9Wd5-0004Nd-Ik for qemu-devel@nongnu.org; Fri, 09 Jan 2015 05:17:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y9Wd3-0000i9-Tk for qemu-devel@nongnu.org; Fri, 09 Jan 2015 05:17:19 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52910) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9Wd3-0000hs-MR for qemu-devel@nongnu.org; Fri, 09 Jan 2015 05:17:17 -0500 From: Stefan Hajnoczi Date: Fri, 9 Jan 2015 10:16:42 +0000 Message-Id: <1420798626-11428-3-git-send-email-stefanha@redhat.com> In-Reply-To: <1420798626-11428-1-git-send-email-stefanha@redhat.com> References: <1420798626-11428-1-git-send-email-stefanha@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL 02/26] libqos: Change use of pointers to uint64_t in virtio List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc=20Mar=C3=AD?= , Peter Maydell , Stefan Hajnoczi From: Marc Mar=C3=AD Convert use of pointers in functions of virtio to uint64_t in order to ma= ke it platform-independent. Add casting from pointers (in PCI functions) to uint64_t and vice versa t= hrough uintptr_t. Signed-off-by: Marc Mar=C3=AD Signed-off-by: Stefan Hajnoczi --- tests/libqos/virtio-pci.c | 20 +++++++++++--------- tests/libqos/virtio.c | 8 ++++---- tests/libqos/virtio.h | 16 ++++++++-------- tests/virtio-blk-test.c | 21 ++++++++++++++------- 4 files changed, 37 insertions(+), 28 deletions(-) diff --git a/tests/libqos/virtio-pci.c b/tests/libqos/virtio-pci.c index 788ebaf..92bcac1 100644 --- a/tests/libqos/virtio-pci.c +++ b/tests/libqos/virtio-pci.c @@ -60,25 +60,25 @@ static void qvirtio_pci_assign_device(QVirtioDevice *= d, void *data) *vpcidev =3D (QVirtioPCIDevice *)d; } =20 -static uint8_t qvirtio_pci_config_readb(QVirtioDevice *d, void *addr) +static uint8_t qvirtio_pci_config_readb(QVirtioDevice *d, uint64_t addr) { QVirtioPCIDevice *dev =3D (QVirtioPCIDevice *)d; - return qpci_io_readb(dev->pdev, addr); + return qpci_io_readb(dev->pdev, (void *)(uintptr_t)addr); } =20 -static uint16_t qvirtio_pci_config_readw(QVirtioDevice *d, void *addr) +static uint16_t qvirtio_pci_config_readw(QVirtioDevice *d, uint64_t addr= ) { QVirtioPCIDevice *dev =3D (QVirtioPCIDevice *)d; - return qpci_io_readw(dev->pdev, addr); + return qpci_io_readw(dev->pdev, (void *)(uintptr_t)addr); } =20 -static uint32_t qvirtio_pci_config_readl(QVirtioDevice *d, void *addr) +static uint32_t qvirtio_pci_config_readl(QVirtioDevice *d, uint64_t addr= ) { QVirtioPCIDevice *dev =3D (QVirtioPCIDevice *)d; - return qpci_io_readl(dev->pdev, addr); + return qpci_io_readl(dev->pdev, (void *)(uintptr_t)addr); } =20 -static uint64_t qvirtio_pci_config_readq(QVirtioDevice *d, void *addr) +static uint64_t qvirtio_pci_config_readq(QVirtioDevice *d, uint64_t addr= ) { QVirtioPCIDevice *dev =3D (QVirtioPCIDevice *)d; int i; @@ -86,11 +86,13 @@ static uint64_t qvirtio_pci_config_readq(QVirtioDevic= e *d, void *addr) =20 if (qtest_big_endian()) { for (i =3D 0; i < 8; ++i) { - u64 |=3D (uint64_t)qpci_io_readb(dev->pdev, addr + i) << (7 = - i) * 8; + u64 |=3D (uint64_t)qpci_io_readb(dev->pdev, + (void *)(uintptr_t)addr + i) << (7 - i) = * 8; } } else { for (i =3D 0; i < 8; ++i) { - u64 |=3D (uint64_t)qpci_io_readb(dev->pdev, addr + i) << i *= 8; + u64 |=3D (uint64_t)qpci_io_readb(dev->pdev, + (void *)(uintptr_t)addr + i) << i * 8; } } =20 diff --git a/tests/libqos/virtio.c b/tests/libqos/virtio.c index a061289..3205b88 100644 --- a/tests/libqos/virtio.c +++ b/tests/libqos/virtio.c @@ -12,25 +12,25 @@ #include "libqos/virtio.h" =20 uint8_t qvirtio_config_readb(const QVirtioBus *bus, QVirtioDevice *d, - void *ad= dr) + uint64_t= addr) { return bus->config_readb(d, addr); } =20 uint16_t qvirtio_config_readw(const QVirtioBus *bus, QVirtioDevice *d, - void *ad= dr) + uint64_t= addr) { return bus->config_readw(d, addr); } =20 uint32_t qvirtio_config_readl(const QVirtioBus *bus, QVirtioDevice *d, - void *ad= dr) + uint64_t= addr) { return bus->config_readl(d, addr); } =20 uint64_t qvirtio_config_readq(const QVirtioBus *bus, QVirtioDevice *d, - void *ad= dr) + uint64_t= addr) { return bus->config_readq(d, addr); } diff --git a/tests/libqos/virtio.h b/tests/libqos/virtio.h index 29fbacb..2449fee 100644 --- a/tests/libqos/virtio.h +++ b/tests/libqos/virtio.h @@ -93,10 +93,10 @@ typedef struct QVRingIndirectDesc { } QVRingIndirectDesc; =20 typedef struct QVirtioBus { - uint8_t (*config_readb)(QVirtioDevice *d, void *addr); - uint16_t (*config_readw)(QVirtioDevice *d, void *addr); - uint32_t (*config_readl)(QVirtioDevice *d, void *addr); - uint64_t (*config_readq)(QVirtioDevice *d, void *addr); + uint8_t (*config_readb)(QVirtioDevice *d, uint64_t addr); + uint16_t (*config_readw)(QVirtioDevice *d, uint64_t addr); + uint32_t (*config_readl)(QVirtioDevice *d, uint64_t addr); + uint64_t (*config_readq)(QVirtioDevice *d, uint64_t addr); =20 /* Get features of the device */ uint32_t (*get_features)(QVirtioDevice *d); @@ -144,13 +144,13 @@ static inline uint32_t qvring_size(uint32_t num, ui= nt32_t align) } =20 uint8_t qvirtio_config_readb(const QVirtioBus *bus, QVirtioDevice *d, - void *ad= dr); + uint64_t= addr); uint16_t qvirtio_config_readw(const QVirtioBus *bus, QVirtioDevice *d, - void *ad= dr); + uint64_t= addr); uint32_t qvirtio_config_readl(const QVirtioBus *bus, QVirtioDevice *d, - void *ad= dr); + uint64_t= addr); uint64_t qvirtio_config_readq(const QVirtioBus *bus, QVirtioDevice *d, - void *ad= dr); + uint64_t= addr); uint32_t qvirtio_get_features(const QVirtioBus *bus, QVirtioDevice *d); void qvirtio_set_features(const QVirtioBus *bus, QVirtioDevice *d, uint32_t fea= tures); diff --git a/tests/virtio-blk-test.c b/tests/virtio-blk-test.c index 89d7cbf..2424c84 100644 --- a/tests/virtio-blk-test.c +++ b/tests/virtio-blk-test.c @@ -157,7 +157,8 @@ static void pci_basic(void) /* MSI-X is not enabled */ addr =3D dev->addr + QVIRTIO_DEVICE_SPECIFIC_NO_MSIX; =20 - capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, addr); + capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, + (uint64_t)(uintptr_t= )addr); g_assert_cmpint(capacity, =3D=3D, TEST_IMAGE_SIZE / 512); =20 features =3D qvirtio_get_features(&qvirtio_pci, &dev->vdev); @@ -303,7 +304,8 @@ static void pci_indirect(void) /* MSI-X is not enabled */ addr =3D dev->addr + QVIRTIO_DEVICE_SPECIFIC_NO_MSIX; =20 - capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, addr); + capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, + (uint64_t)(uintptr_t= )addr); g_assert_cmpint(capacity, =3D=3D, TEST_IMAGE_SIZE / 512); =20 features =3D qvirtio_get_features(&qvirtio_pci, &dev->vdev); @@ -394,7 +396,8 @@ static void pci_config(void) /* MSI-X is not enabled */ addr =3D dev->addr + QVIRTIO_DEVICE_SPECIFIC_NO_MSIX; =20 - capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, addr); + capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, + (uint64_t)(uintptr_t= )addr); g_assert_cmpint(capacity, =3D=3D, TEST_IMAGE_SIZE / 512); =20 qvirtio_set_driver_ok(&qvirtio_pci, &dev->vdev); @@ -403,7 +406,8 @@ static void pci_config(void) " 'size': %d } }", n= _size); qvirtio_wait_config_isr(&qvirtio_pci, &dev->vdev, QVIRTIO_BLK_TIMEOU= T_US); =20 - capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, addr); + capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, + (uint64_t)(uintptr_t= )addr); g_assert_cmpint(capacity, =3D=3D, n_size / 512); =20 qvirtio_pci_device_disable(dev); @@ -438,7 +442,8 @@ static void pci_msix(void) /* MSI-X is enabled */ addr =3D dev->addr + QVIRTIO_DEVICE_SPECIFIC_MSIX; =20 - capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, addr); + capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, + (uint64_t)(uintptr_t= )addr); g_assert_cmpint(capacity, =3D=3D, TEST_IMAGE_SIZE / 512); =20 features =3D qvirtio_get_features(&qvirtio_pci, &dev->vdev); @@ -458,7 +463,8 @@ static void pci_msix(void) =20 qvirtio_wait_config_isr(&qvirtio_pci, &dev->vdev, QVIRTIO_BLK_TIMEOU= T_US); =20 - capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, addr); + capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, + (uint64_t)(uintptr_t= )addr); g_assert_cmpint(capacity, =3D=3D, n_size / 512); =20 /* Write request */ @@ -547,7 +553,8 @@ static void pci_idx(void) /* MSI-X is enabled */ addr =3D dev->addr + QVIRTIO_DEVICE_SPECIFIC_MSIX; =20 - capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, addr); + capacity =3D qvirtio_config_readq(&qvirtio_pci, &dev->vdev, + (uint64_t)(uintptr_t= )addr); g_assert_cmpint(capacity, =3D=3D, TEST_IMAGE_SIZE / 512); =20 features =3D qvirtio_get_features(&qvirtio_pci, &dev->vdev); --=20 2.1.0