From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Jerin.Jacob@cavium.com>
Received: from NAM01-BN3-obe.outbound.protection.outlook.com
 (mail-bn3nam01on0081.outbound.protection.outlook.com [104.47.33.81])
 by dpdk.org (Postfix) with ESMTP id 399562C8
 for <dev@dpdk.org>; Tue, 27 Dec 2016 10:52:51 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=fsY1ZvEHOEyON71oHSwjNwIKaz9kMI0kr7qFxZojul8=;
 b=JcMD8+n7PjqspAUi7CTZRTtiGGKAygCbuCMPoj0mLu2QU6pYDyGFm/LMC2r63UzLqH6VaAfoEIRtkKGPXnmRhUT+A1DeeWI32a9+Y2+YlJ2Qwdbq/tkvRscW0uJ6MXJm1GkdL5rVb0ZfSMBrXIMDkNZ/79/kjXsmiK0BX1UI/5w=
Authentication-Results: spf=none (sender IP is )
 smtp.mailfrom=Jerin.Jacob@cavium.com; 
Received: from localhost.localdomain.localdomain (202.83.56.97) by
 BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id
 15.1.803.11; Tue, 27 Dec 2016 09:52:46 +0000
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
To: <dev@dpdk.org>
CC: <konstantin.ananyev@intel.com>, <thomas.monjalon@6wind.com>,
 <bruce.richardson@intel.com>, <jianbo.liu@linaro.org>,
 <viktorin@rehivetech.com>, <santosh.shukla@caviumnetworks.com>, Huawei Xie
 <huawei.xie@intel.com>, Yuanhan Liu <yuanhan.liu@linux.intel.com>, Jerin
 Jacob <jerin.jacob@caviumnetworks.com>
Date: Tue, 27 Dec 2016 15:19:34 +0530
Message-ID: <1482832175-27199-29-git-send-email-jerin.jacob@caviumnetworks.com>
X-Mailer: git-send-email 2.5.5
In-Reply-To: <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com>
References: <1481680558-4003-1-git-send-email-jerin.jacob@caviumnetworks.com>
 <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [202.83.56.97]
X-ClientProxiedBy: PN1PR01CA0001.INDPRD01.PROD.OUTLOOK.COM (10.164.137.8) To
 BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14)
X-MS-Office365-Filtering-Correlation-Id: f0f16429-5d38-4ea4-1de3-08d42e3e1ea8
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001);
 SRVR:BLUPR0701MB1713; 
X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713;
 3:AELzhYNgCE/0Y0+7X3jUSU8ycX3BAKoXwW63oSzelDDmeImzS5zd6lAlvLA+RlexvM37iNX2JAskiXzEmEMQS9T5qxzudAJffV2h6YTtx0yo++H0uhEgebEQv4b8ki/gkDxKn/BO1xR5BhVl9P3LC49qtqppequtVXdDCX3zw4kZZ9ZxyFqTkQr/mtg1gUxc6wKBzj1Abd/PUrjKSqN60f5Lr+jA7ElBMBwKJL4hfdui70B8pa7fLHm1ynoEOl5ujdIna9HsS5s9zgLz9ZvvCQ==
X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713;
 25:Z8JClGN9erVnpiWscLNu19rPdxiow90pIirrlhcPqi9BJ/88bEi+JeDQ7jaXDKmiLXvLRrIp3/bTqwB7adgH0DB1M/SggGrNmCdjoRfvbLHbBIyiIyxAytWfNPt9ITaiKJapmW/F+KfJ8P54V1s6kFBUvp6fmadGvY10DTgJz9wDZ2UBiQ6OtfQfEkRSslYkfHn+tQshb75T0A/v8hnVRbYOMOyRiOflLozubi70cImxmWZTzwh29xLIFwA8Hpg2QyATmop+e2VwM1OW05soM0Z1tCIOvHMwmdIQ0UiDc3RjBq5lY/mlZ272O4OcHq4kuVZ1B/U70cFTOgh1Tp4NTYjNXace/f1WQjXp7DFnEDTANxMPxsBPqBGBypiW1JvlZU0+zJz8FaVz7ySkOT2+ijf6VU1hRGsAjpn/a6CrK8yxOXI42uYAEcQl22qeYALiOqFww6s3hsFf1GrAG+z/hkrZxJJHJ+5FoafzG6tXGM8GzlFjZp8DCmdkB+kTiDB5A4ZII1hDyVpHlmlR8VkNDGuXamdadN9UlB6PuU2AaML8n9jnJHvSxGfvsPYgTQsPNVGhUEyqx/lDZfzp4p/8T9k32wYqb1TQ6ptSN0C/kfm9OR40EzMdZIw68+XiH0QhOHfM4K36RX5KCxjCg0EvzHFyJcmu5d3vm7TxJHu+I6uf6JXIoXj23kP8Seweuhol+URgEvTALBXonauToURHRp8/dpWOKp4qElyZf2OwGzHXZytfUzZTyxNohtxY8/QlP7CeJ2QBFrjlkPsVRX3rw5iVnGfBFCnBhroji+/xf4Qt8fXRpBSssQ4BeKoPg8kj1cbPJja4oI8Q1SV24dmdlQ==
X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713;
 31:fFiQ9eeTC5pqTal/tcQu8H9Zglxlg3/QxNmPGvCy7+q1NyrrUPy5L6SIKcbidnPWy847DXEEH9UfWlSn3YnOoltKtefuKlA/Ary8JZDTj6rDwzXv29epkPcKHcPwpWd8YGf/b8dGzpqGa+bWDr7SZRJw0pxrYM2PzmOK6QQ53nxuIgWvSp8gf6LO86UKFO6omvBNAI0TSnDLLSWEa2ZjaKRlv2BEV+VzwaGSjPqt4I2Hq+MyLQUV92/Qlfa/dmlx;
 20:+w0LnYlWaQMI3sZR7XSVHd9k4i4RzmqXfDjR0tForHpHMgbQ+m/1z9NAFrnQNKX7KEpZ73CRcF9SXcKp0EIOOLwRcZDv7gRhIM9sqf3SMr35GsA0RIsbHualGcoN8HeSLhZxaeyLfE8eeFJIcb6aE80NICPkeP/invFjqdj+MN/YafT+AOq5PhCaUQwKfJec7gX/RD0BoQNTTQA0275k7N8I69wS8OGNXyitr20+0qdtFiHJ5zcFEQR5SDfaX72HyApf1J3/rnM5wdFNNJV5E+8eezgwTuFOoOKBEVtuPFM8j3/udbQp5hk7FqE3x9pYm3Z3M2QU1h4c1nBqEFe9PodbENDYcz75C3IgS0C6b/Gu9qpKNDo9dpciqSD/mw9Y9nCRcVXvc79s5HnfdNNvWjW04mcgfkLSeM7j1FQvyX2nQ6M1XZHyDdO3DfBNTMdnmJHQtdIn7e+4bFB8jwnJFiCy66WEvdxA6OPwm1KXjjJDwuB9e5cPFi3otMz3GzWE31iLZj8dfY7iXJf2Xf71veUgs0d1YpCuhz6OLI5PiTJXbQ7Oh2R1Jdb0QF3+Hmi3+ke6L/eiUzosG+RvLNlThC5+W2eMjz2A60Y1Ti8CVys=
X-Microsoft-Antispam-PRVS: <BLUPR0701MB17132E2DBDEAA0FE011534F081690@BLUPR0701MB1713.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(228905959029699);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123558021)(20161123564025)(20161123562025)(6072148);
 SRVR:BLUPR0701MB1713; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1713; 
X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713;
 4:Fbyr7GJIXwE7mQOXPWxXBSGt53uB41RKh7BGJXCLvtFNpLnJoiyxHsK79ntnhiY8boJZru3HVarj2KA4gcOyzi3zPhjwHQyQGZSxWRM9gvHWhlPCzs8SD7hkXXbgF6RgtbAxsIw5MBzJyFUj1Ab2Q9hw+hZsMrbdpIN54Bi1Vlcxz5K8SH+4qNYEWlIyayLa/guWCeZbUPA1AOxeCboG8AHa6qcoXCGkCCF98NbdVOAcFGttLTJXtZof1mVsSitu8pqrCpMhoNH2KYPywkmp5nSU3d+JV52wuFhAAHrQJhqFvaMGQS+RZhk5R1wAQfff5wvFz1rh3TRm0FAMxs93grBmsKA5h6ilZvoXuDzGrTExQPGeCJbsdqN2a8BJsxqcCZuaHVtTsIUnj6A1bIPUHtGiDO21mo/NPW1RFWHkycj/JFTtAnHxg79E6SHbciImRU0x2zJgsPpl7NNZQmF11/1/s8dBLD88TD0wsYsa1CbFNb+SH079frvZnw831DTDaHuP1K0cy4SgWWGYWJ7XSTyAFztEraSoSI0+lng+bj4BuXtTku1C1YSz3j0kH8vVDtIMHXl2VZf36vWrJCv/nijVMHSGaceKwJ6jRONHjofjLTOZ+QrCxO5I38c9d1sXdZQCn4yLJH2yDUgvTx1snAWgySWpCXbTHmOmlKvQXY9SbDdnDnPiWxjpYYJiRW8p
X-Forefront-PRVS: 0169092318
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(39450400003)(189002)(199003)(36756003)(68736007)(106356001)(97736004)(50226002)(5660300001)(6916009)(47776003)(42882006)(2950100002)(6666003)(189998001)(25786008)(105586002)(33646002)(107886002)(48376002)(38730400001)(7736002)(92566002)(6486002)(6506006)(6512006)(110136003)(50466002)(305945005)(2351001)(50986999)(76176999)(4001430100002)(3846002)(4326007)(6116002)(5003940100001)(42186005)(81156014)(81166006)(101416001)(8676002)(2906002)(66066001);
 DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1713;
 H:localhost.localdomain.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1;
 A:1; LANG:en; 
Received-SPF: None (protection.outlook.com: cavium.com does not designate
 permitted sender hosts)
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1713;
 23:+5W8xZrTPJdgOQGtLadPoHnwWApPtu7fyop5SO/?=
 =?us-ascii?Q?dONRZES+/CT6vWIinIx5gDEBBei5FVoyvz6UvxtUl7/e8bAPZVDYdycm6i38?=
 =?us-ascii?Q?EgTtXH1sqXc2+R/gRx8+tRMezNRS7Ui6k8xkf19kzxpLEPjr8O+K7/sYL4XZ?=
 =?us-ascii?Q?5cel+O34I/EWcYj24cViCgXDFpPndbTj5D793YrqfF4H9cS5UUnRjek7OjZQ?=
 =?us-ascii?Q?TyijOyfs500D23NJ/PYSeDd78qXm5ajrZuAmLtWj4QviP+p7oNstHUt13gk2?=
 =?us-ascii?Q?zOto6V016X8B6W83Fpp8wqPJz3neknbVL5ZKtRuBb9x3gcLVt/CTv5yGBTZU?=
 =?us-ascii?Q?rHYFSnG8ihbIIPE1sNaiZLojp/BBVG3K3dcot4NcBYScP9zvwOC8OYde1Uds?=
 =?us-ascii?Q?6WIpmCyieI09D3hQgEzHfHxLS9m6/UqpzP+gkPV8eyopsP4zjfitL4JUE+5W?=
 =?us-ascii?Q?kXwLH8Ulml1nuVA6nqpqURCSxwgF8VB1teVKhJnaKF87TIKdSfQ0IvlJjuPw?=
 =?us-ascii?Q?S9UL+yrb77DvSLNVF+yHSdiHO2NHaxhbCVi9DGdSd5ucUvn8/6qlUvcXKtkT?=
 =?us-ascii?Q?apQFY5r0+gh19AqXcBbfViBxjdWE5QEo8eKrtThjyXoOnZezLpLY8ANWLLJZ?=
 =?us-ascii?Q?eXcQbEvmjorpN05cXKFnl4YBZ3UlBYdEmn1ZT8Ww/PT1YA8t5OAGsNU4y/LH?=
 =?us-ascii?Q?XpAz/ylWcbtEDXx6gdiEO8Nqwe0a0HPu9lvN0jY50OzN3KqfgVMHXEsk0Ola?=
 =?us-ascii?Q?HGomspcUn/nNFSPGjK9C/YpRgxWAVrabJJ5zSpzI1FZvoSOOfpn782tXr8be?=
 =?us-ascii?Q?YTVMnjYnxve4uAwJUGmN6gbKQNqMMbA2Ry2qAyhsBMrNh2K4zIgvoB48HPsL?=
 =?us-ascii?Q?P3s42R7dtjEqfpTs9jlkj6syhsWyBGepmbELvLzDJHURpW7qIf2JDDXyb2Kv?=
 =?us-ascii?Q?fMUo4nOid3jThBXR5TqG4RCYY/0EZv8wltLNdxWREPxQfLJtDhg3J12wyzaA?=
 =?us-ascii?Q?/NzYUPtbg9nG155f4bvEsC63aEj+KEv1qoz53mrKn1WDDvJg/k2vMvQFYpcb?=
 =?us-ascii?Q?Y9+tpt4MlOLyfk1LXy/pOmuJ223FfKYqxBPShYSlZIxrb9vlfCkUnk3joqKP?=
 =?us-ascii?Q?4BumNAuu7vGM6fESJXjL8ldt8PXzHsF6h6CgyrYS/W+DV4EQRFVqpqw=3D?=
 =?us-ascii?Q?=3D?=
X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713;
 6:0x7SDeODw1SnQP2+/iSDERa29MXvoaAPIbiGdQMBR2YyZrzPR/nKrWehNJZ9whE7CCY8fLLS2J44Dtlu9ok6F0bOeOaGdMFugfMuWlt2qf1c6KZXlRlxpUxSkSq2CYqUdelPriDt86N4gW95Hl1uZiWFqImC6uZFZyqFrP5vfLw4MPt52rkqKJ4LLqfz7zB5vrVlqGkJ7n/GAl1/y/ofKyrF/+O1+7Ip01sd8JhlVP7F+sPNz66CzDnehSmVS8k18Tv/qtrbJ6B8y6Z5YW7VJdsnbhgiej0es+4/YO56OOVPW1aoCArrPQbUeriqX5eNfuES5tlCcVgpWxQhjbgftXH5/bCZyBzyZ4t+fUEQKXTRBkXroxM86ftpwR50mRLLq/nOATsHaN8I5FF9rGu7E0CMITewNELugai4zutaXKM=;
 5:pEOhYuTK4RYS78cl/ucjWEfENPvkfosEXw4914RuTLBRC4w1Bqo5nDoJgc9ff8gmR8kCP0CybARCN54qU1ndqLYAceI+oNJPZvRD4BY1sXx4cw4YhTcLE5NJNHm++B2fge/XrmrZDXehdYqfgUnrbA==;
 24:sepQxE6eUyic2NM5ngVJV8GkcyIM5B5z0ZBEkFWCl37CKMgYjV6SFaKcdrm+wMNXfnEXFOwPoFbcXiWfYfxaQjjZh4zmAfJBroz7mh2bpYw=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713;
 7:pX8AZvSmpkSuN1J2KJSFirUZVcjept/P9+qvbxYbI7OtMkyqPPjbwipfDVMMB3hFJC5Y4g9fbgXhB72+jYs31AV2gd+nR4N6mfBiAUMexV0irnmQLr5N1ybloahmzdbGpywn9n4p3Y0M5M3tcXVWva2LZ4RlXrk1s1iREW+iGYO8w+aqB9VT05aLfOmCyOOpxpfuPMmnrwte8CScNKLuwOSIHOvtiBu9JmL/DVDg9pQnv/fylGjJalhM4dlxJgNGk0nNCir4ghMLyTXvSRknbFHuIH8bBmhiDpFxZLHrYgSuqq/8cLYz0PsSUbXAHRaAZTt/Dy3Z33J9SWv33KYGpNCuO/2Zq0RZQVMaFN8UYVcLKEmhnfV3bsaMACPDEFyVowmbIOLEStGITrzFCCkV/UpmZVoqDskVOL8z8+nyq70bbCoKXfsBZwkOwWzfu+oDpwTB0/kzo3YJEOfoOWwKIA==
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2016 09:52:46.8695 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1713
Subject: [dpdk-dev] [PATCH v2 28/29] net/virtio: use eal I/O device memory
	read/write API
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Dec 2016 09:52:51 -0000

From: Santosh Shukla <santosh.shukla@caviumnetworks.com>

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.

CC: Huawei Xie <huawei.xie@intel.com>
CC: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
---
 drivers/net/virtio/virtio_pci.c | 97 +++++++++++++----------------------------
 1 file changed, 31 insertions(+), 66 deletions(-)

diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
index 9b47165..7c1cb4c 100644
--- a/drivers/net/virtio/virtio_pci.c
+++ b/drivers/net/virtio/virtio_pci.c
@@ -37,6 +37,8 @@
  #include <fcntl.h>
 #endif
 
+#include <rte_io.h>
+
 #include "virtio_pci.h"
 #include "virtio_logs.h"
 #include "virtqueue.h"
@@ -316,48 +318,11 @@ static const struct virtio_pci_ops legacy_ops = {
 	.notify_queue	= legacy_notify_queue,
 };
 
-
-static inline uint8_t
-io_read8(uint8_t *addr)
-{
-	return *(volatile uint8_t *)addr;
-}
-
-static inline void
-io_write8(uint8_t val, uint8_t *addr)
-{
-	*(volatile uint8_t *)addr = val;
-}
-
-static inline uint16_t
-io_read16(uint16_t *addr)
-{
-	return *(volatile uint16_t *)addr;
-}
-
-static inline void
-io_write16(uint16_t val, uint16_t *addr)
-{
-	*(volatile uint16_t *)addr = val;
-}
-
-static inline uint32_t
-io_read32(uint32_t *addr)
-{
-	return *(volatile uint32_t *)addr;
-}
-
-static inline void
-io_write32(uint32_t val, uint32_t *addr)
-{
-	*(volatile uint32_t *)addr = val;
-}
-
 static inline void
 io_write64_twopart(uint64_t val, uint32_t *lo, uint32_t *hi)
 {
-	io_write32(val & ((1ULL << 32) - 1), lo);
-	io_write32(val >> 32,		     hi);
+	rte_write32(val & ((1ULL << 32) - 1), lo);
+	rte_write32(val >> 32,		     hi);
 }
 
 static void
@@ -369,13 +334,13 @@ modern_read_dev_config(struct virtio_hw *hw, size_t offset,
 	uint8_t old_gen, new_gen;
 
 	do {
-		old_gen = io_read8(&hw->common_cfg->config_generation);
+		old_gen = rte_read8(&hw->common_cfg->config_generation);
 
 		p = dst;
 		for (i = 0;  i < length; i++)
-			*p++ = io_read8((uint8_t *)hw->dev_cfg + offset + i);
+			*p++ = rte_read8((uint8_t *)hw->dev_cfg + offset + i);
 
-		new_gen = io_read8(&hw->common_cfg->config_generation);
+		new_gen = rte_read8(&hw->common_cfg->config_generation);
 	} while (old_gen != new_gen);
 }
 
@@ -387,7 +352,7 @@ modern_write_dev_config(struct virtio_hw *hw, size_t offset,
 	const uint8_t *p = src;
 
 	for (i = 0;  i < length; i++)
-		io_write8(*p++, (uint8_t *)hw->dev_cfg + offset + i);
+		rte_write8((*p++), (((uint8_t *)hw->dev_cfg) + offset + i));
 }
 
 static uint64_t
@@ -395,11 +360,11 @@ modern_get_features(struct virtio_hw *hw)
 {
 	uint32_t features_lo, features_hi;
 
-	io_write32(0, &hw->common_cfg->device_feature_select);
-	features_lo = io_read32(&hw->common_cfg->device_feature);
+	rte_write32(0, &hw->common_cfg->device_feature_select);
+	features_lo = rte_read32(&hw->common_cfg->device_feature);
 
-	io_write32(1, &hw->common_cfg->device_feature_select);
-	features_hi = io_read32(&hw->common_cfg->device_feature);
+	rte_write32(1, &hw->common_cfg->device_feature_select);
+	features_hi = rte_read32(&hw->common_cfg->device_feature);
 
 	return ((uint64_t)features_hi << 32) | features_lo;
 }
@@ -407,25 +372,25 @@ modern_get_features(struct virtio_hw *hw)
 static void
 modern_set_features(struct virtio_hw *hw, uint64_t features)
 {
-	io_write32(0, &hw->common_cfg->guest_feature_select);
-	io_write32(features & ((1ULL << 32) - 1),
-		&hw->common_cfg->guest_feature);
+	rte_write32(0, &hw->common_cfg->guest_feature_select);
+	rte_write32(features & ((1ULL << 32) - 1),
+		    &hw->common_cfg->guest_feature);
 
-	io_write32(1, &hw->common_cfg->guest_feature_select);
-	io_write32(features >> 32,
-		&hw->common_cfg->guest_feature);
+	rte_write32(1, &hw->common_cfg->guest_feature_select);
+	rte_write32(features >> 32,
+		    &hw->common_cfg->guest_feature);
 }
 
 static uint8_t
 modern_get_status(struct virtio_hw *hw)
 {
-	return io_read8(&hw->common_cfg->device_status);
+	return rte_read8(&hw->common_cfg->device_status);
 }
 
 static void
 modern_set_status(struct virtio_hw *hw, uint8_t status)
 {
-	io_write8(status, &hw->common_cfg->device_status);
+	rte_write8(status, &hw->common_cfg->device_status);
 }
 
 static void
@@ -438,21 +403,21 @@ modern_reset(struct virtio_hw *hw)
 static uint8_t
 modern_get_isr(struct virtio_hw *hw)
 {
-	return io_read8(hw->isr);
+	return rte_read8(hw->isr);
 }
 
 static uint16_t
 modern_set_config_irq(struct virtio_hw *hw, uint16_t vec)
 {
-	io_write16(vec, &hw->common_cfg->msix_config);
-	return io_read16(&hw->common_cfg->msix_config);
+	rte_write16(vec, &hw->common_cfg->msix_config);
+	return rte_read16(&hw->common_cfg->msix_config);
 }
 
 static uint16_t
 modern_get_queue_num(struct virtio_hw *hw, uint16_t queue_id)
 {
-	io_write16(queue_id, &hw->common_cfg->queue_select);
-	return io_read16(&hw->common_cfg->queue_size);
+	rte_write16(queue_id, &hw->common_cfg->queue_select);
+	return rte_read16(&hw->common_cfg->queue_size);
 }
 
 static int
@@ -470,7 +435,7 @@ modern_setup_queue(struct virtio_hw *hw, struct virtqueue *vq)
 							 ring[vq->vq_nentries]),
 				   VIRTIO_PCI_VRING_ALIGN);
 
-	io_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);
+	rte_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);
 
 	io_write64_twopart(desc_addr, &hw->common_cfg->queue_desc_lo,
 				      &hw->common_cfg->queue_desc_hi);
@@ -479,11 +444,11 @@ modern_setup_queue(struct virtio_hw *hw, struct virtqueue *vq)
 	io_write64_twopart(used_addr, &hw->common_cfg->queue_used_lo,
 				      &hw->common_cfg->queue_used_hi);
 
-	notify_off = io_read16(&hw->common_cfg->queue_notify_off);
+	notify_off = rte_read16(&hw->common_cfg->queue_notify_off);
 	vq->notify_addr = (void *)((uint8_t *)hw->notify_base +
 				notify_off * hw->notify_off_multiplier);
 
-	io_write16(1, &hw->common_cfg->queue_enable);
+	rte_write16(1, &hw->common_cfg->queue_enable);
 
 	PMD_INIT_LOG(DEBUG, "queue %u addresses:", vq->vq_queue_index);
 	PMD_INIT_LOG(DEBUG, "\t desc_addr: %" PRIx64, desc_addr);
@@ -498,7 +463,7 @@ modern_setup_queue(struct virtio_hw *hw, struct virtqueue *vq)
 static void
 modern_del_queue(struct virtio_hw *hw, struct virtqueue *vq)
 {
-	io_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);
+	rte_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);
 
 	io_write64_twopart(0, &hw->common_cfg->queue_desc_lo,
 				  &hw->common_cfg->queue_desc_hi);
@@ -507,13 +472,13 @@ modern_del_queue(struct virtio_hw *hw, struct virtqueue *vq)
 	io_write64_twopart(0, &hw->common_cfg->queue_used_lo,
 				  &hw->common_cfg->queue_used_hi);
 
-	io_write16(0, &hw->common_cfg->queue_enable);
+	rte_write16(0, &hw->common_cfg->queue_enable);
 }
 
 static void
 modern_notify_queue(struct virtio_hw *hw __rte_unused, struct virtqueue *vq)
 {
-	io_write16(1, vq->notify_addr);
+	rte_write16(1, vq->notify_addr);
 }
 
 static const struct virtio_pci_ops modern_ops = {
-- 
2.5.5