From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: [PATCH 26/28] net/virtio: use eal I/O device memory read/write API Date: Wed, 14 Dec 2016 07:25:56 +0530 Message-ID: <1481680558-4003-27-git-send-email-jerin.jacob@caviumnetworks.com> References: <1481680558-4003-1-git-send-email-jerin.jacob@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , , , , , Santosh Shukla , Jerin Jacob , Huawei Xie , Yuanhan Liu To: Return-path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0084.outbound.protection.outlook.com [104.47.41.84]) by dpdk.org (Postfix) with ESMTP id 682AEFA40 for ; Wed, 14 Dec 2016 02:59:24 +0100 (CET) In-Reply-To: <1481680558-4003-1-git-send-email-jerin.jacob@caviumnetworks.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Santosh Shukla Replace the raw I/O device memory read/write access with eal abstraction for I/O device memory read/write access to fix portability issues across different architectures. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob CC: Huawei Xie CC: Yuanhan Liu --- drivers/net/virtio/virtio_pci.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c index 9b47165..47c5a2e 100644 --- a/drivers/net/virtio/virtio_pci.c +++ b/drivers/net/virtio/virtio_pci.c @@ -41,6 +41,8 @@ #include "virtio_logs.h" #include "virtqueue.h" +#include + /* * Following macros are derived from linux/pci_regs.h, however, * we can't simply include that header here, as there is no such @@ -320,37 +322,37 @@ static const struct virtio_pci_ops legacy_ops = { static inline uint8_t io_read8(uint8_t *addr) { - return *(volatile uint8_t *)addr; + return rte_readb(addr); } static inline void io_write8(uint8_t val, uint8_t *addr) { - *(volatile uint8_t *)addr = val; + rte_writeb(val, addr); } static inline uint16_t io_read16(uint16_t *addr) { - return *(volatile uint16_t *)addr; + return rte_readw(addr); } static inline void io_write16(uint16_t val, uint16_t *addr) { - *(volatile uint16_t *)addr = val; + rte_writew(val, addr); } static inline uint32_t io_read32(uint32_t *addr) { - return *(volatile uint32_t *)addr; + return rte_readl(addr); } static inline void io_write32(uint32_t val, uint32_t *addr) { - *(volatile uint32_t *)addr = val; + rte_writel(val, addr); } static inline void -- 2.5.5