get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/18588/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 18588,
    "url": "http://patches.dpdk.org/api/patches/18588/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1482832175-27199-29-git-send-email-jerin.jacob@caviumnetworks.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1482832175-27199-29-git-send-email-jerin.jacob@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1482832175-27199-29-git-send-email-jerin.jacob@caviumnetworks.com",
    "date": "2016-12-27T09:49:34",
    "name": "[dpdk-dev,v2,28/29] net/virtio: use eal I/O device memory read/write API",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "59239301fbb4b0d584543f5bd81dc4ac1ea7c595",
    "submitter": {
        "id": 305,
        "url": "http://patches.dpdk.org/api/people/305/?format=api",
        "name": "Jerin Jacob",
        "email": "jerin.jacob@caviumnetworks.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1482832175-27199-29-git-send-email-jerin.jacob@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/18588/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/18588/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 207EB5598;\n\tTue, 27 Dec 2016 10:52:57 +0100 (CET)",
            "from NAM01-BN3-obe.outbound.protection.outlook.com\n\t(mail-bn3nam01on0081.outbound.protection.outlook.com [104.47.33.81])\n\tby dpdk.org (Postfix) with ESMTP id 399562C8\n\tfor <dev@dpdk.org>; Tue, 27 Dec 2016 10:52:51 +0100 (CET)",
            "from localhost.localdomain.localdomain (202.83.56.97) by\n\tBLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id\n\t15.1.803.11; Tue, 27 Dec 2016 09:52:46 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=fsY1ZvEHOEyON71oHSwjNwIKaz9kMI0kr7qFxZojul8=;\n\tb=JcMD8+n7PjqspAUi7CTZRTtiGGKAygCbuCMPoj0mLu2QU6pYDyGFm/LMC2r63UzLqH6VaAfoEIRtkKGPXnmRhUT+A1DeeWI32a9+Y2+YlJ2Qwdbq/tkvRscW0uJ6MXJm1GkdL5rVb0ZfSMBrXIMDkNZ/79/kjXsmiK0BX1UI/5w=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Jerin.Jacob@cavium.com; ",
        "From": "Jerin Jacob <jerin.jacob@caviumnetworks.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<konstantin.ananyev@intel.com>, <thomas.monjalon@6wind.com>,\n\t<bruce.richardson@intel.com>, <jianbo.liu@linaro.org>,\n\t<viktorin@rehivetech.com>, <santosh.shukla@caviumnetworks.com>,\n\tHuawei Xie\n\t<huawei.xie@intel.com>, Yuanhan Liu <yuanhan.liu@linux.intel.com>, Jerin\n\tJacob <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>\n\t<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\n\tBLUPR0701MB1713.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);\n\tSRVR:BLUPR0701MB1713; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BLUPR0701MB1713;\n\t3:AELzhYNgCE/0Y0+7X3jUSU8ycX3BAKoXwW63oSzelDDmeImzS5zd6lAlvLA+RlexvM37iNX2JAskiXzEmEMQS9T5qxzudAJffV2h6YTtx0yo++H0uhEgebEQv4b8ki/gkDxKn/BO1xR5BhVl9P3LC49qtqppequtVXdDCX3zw4kZZ9ZxyFqTkQr/mtg1gUxc6wKBzj1Abd/PUrjKSqN60f5Lr+jA7ElBMBwKJL4hfdui70B8pa7fLHm1ynoEOl5ujdIna9HsS5s9zgLz9ZvvCQ==",
            "1; BLUPR0701MB1713;\n\t25: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==",
            "1; BLUPR0701MB1713;\n\t31:fFiQ9eeTC5pqTal/tcQu8H9Zglxlg3/QxNmPGvCy7+q1NyrrUPy5L6SIKcbidnPWy847DXEEH9UfWlSn3YnOoltKtefuKlA/Ary8JZDTj6rDwzXv29epkPcKHcPwpWd8YGf/b8dGzpqGa+bWDr7SZRJw0pxrYM2PzmOK6QQ53nxuIgWvSp8gf6LO86UKFO6omvBNAI0TSnDLLSWEa2ZjaKRlv2BEV+VzwaGSjPqt4I2Hq+MyLQUV92/Qlfa/dmlx;\n\t20:+w0LnYlWaQMI3sZR7XSVHd9k4i4RzmqXfDjR0tForHpHMgbQ+m/1z9NAFrnQNKX7KEpZ73CRcF9SXcKp0EIOOLwRcZDv7gRhIM9sqf3SMr35GsA0RIsbHualGcoN8HeSLhZxaeyLfE8eeFJIcb6aE80NICPkeP/invFjqdj+MN/YafT+AOq5PhCaUQwKfJec7gX/RD0BoQNTTQA0275k7N8I69wS8OGNXyitr20+0qdtFiHJ5zcFEQR5SDfaX72HyApf1J3/rnM5wdFNNJV5E+8eezgwTuFOoOKBEVtuPFM8j3/udbQp5hk7FqE3x9pYm3Z3M2QU1h4c1nBqEFe9PodbENDYcz75C3IgS0C6b/Gu9qpKNDo9dpciqSD/mw9Y9nCRcVXvc79s5HnfdNNvWjW04mcgfkLSeM7j1FQvyX2nQ6M1XZHyDdO3DfBNTMdnmJHQtdIn7e+4bFB8jwnJFiCy66WEvdxA6OPwm1KXjjJDwuB9e5cPFi3otMz3GzWE31iLZj8dfY7iXJf2Xf71veUgs0d1YpCuhz6OLI5PiTJXbQ7Oh2R1Jdb0QF3+Hmi3+ke6L/eiUzosG+RvLNlThC5+W2eMjz2A60Y1Ti8CVys=",
            "1; BLUPR0701MB1713;\n\t4:Fbyr7GJIXwE7mQOXPWxXBSGt53uB41RKh7BGJXCLvtFNpLnJoiyxHsK79ntnhiY8boJZru3HVarj2KA4gcOyzi3zPhjwHQyQGZSxWRM9gvHWhlPCzs8SD7hkXXbgF6RgtbAxsIw5MBzJyFUj1Ab2Q9hw+hZsMrbdpIN54Bi1Vlcxz5K8SH+4qNYEWlIyayLa/guWCeZbUPA1AOxeCboG8AHa6qcoXCGkCCF98NbdVOAcFGttLTJXtZof1mVsSitu8pqrCpMhoNH2KYPywkmp5nSU3d+JV52wuFhAAHrQJhqFvaMGQS+RZhk5R1wAQfff5wvFz1rh3TRm0FAMxs93grBmsKA5h6ilZvoXuDzGrTExQPGeCJbsdqN2a8BJsxqcCZuaHVtTsIUnj6A1bIPUHtGiDO21mo/NPW1RFWHkycj/JFTtAnHxg79E6SHbciImRU0x2zJgsPpl7NNZQmF11/1/s8dBLD88TD0wsYsa1CbFNb+SH079frvZnw831DTDaHuP1K0cy4SgWWGYWJ7XSTyAFztEraSoSI0+lng+bj4BuXtTku1C1YSz3j0kH8vVDtIMHXl2VZf36vWrJCv/nijVMHSGaceKwJ6jRONHjofjLTOZ+QrCxO5I38c9d1sXdZQCn4yLJH2yDUgvTx1snAWgySWpCXbTHmOmlKvQXY9SbDdnDnPiWxjpYYJiRW8p",
            "=?us-ascii?Q?1; BLUPR0701MB1713;\n\t23:+5W8xZrTPJdgOQGtLadPoHnwWApPtu7fyop5SO/?=\n\tdONRZES+/CT6vWIinIx5gDEBBei5FVoyvz6UvxtUl7/e8bAPZVDYdycm6i38EgTtXH1sqXc2+R/gRx8+tRMezNRS7Ui6k8xkf19kzxpLEPjr8O+K7/sYL4XZ5cel+O34I/EWcYj24cViCgXDFpPndbTj5D793YrqfF4H9cS5UUnRjek7OjZQTyijOyfs500D23NJ/PYSeDd78qXm5ajrZuAmLtWj4QviP+p7oNstHUt13gk2zOto6V016X8B6W83Fpp8wqPJz3neknbVL5ZKtRuBb9x3gcLVt/CTv5yGBTZUrHYFSnG8ihbIIPE1sNaiZLojp/BBVG3K3dcot4NcBYScP9zvwOC8OYde1Uds6WIpmCyieI09D3hQgEzHfHxLS9m6/UqpzP+gkPV8eyopsP4zjfitL4JUE+5WkXwLH8Ulml1nuVA6nqpqURCSxwgF8VB1teVKhJnaKF87TIKdSfQ0IvlJjuPwS9UL+yrb77DvSLNVF+yHSdiHO2NHaxhbCVi9DGdSd5ucUvn8/6qlUvcXKtkTapQFY5r0+gh19AqXcBbfViBxjdWE5QEo8eKrtThjyXoOnZezLpLY8ANWLLJZeXcQbEvmjorpN05cXKFnl4YBZ3UlBYdEmn1ZT8Ww/PT1YA8t5OAGsNU4y/LHXpAz/ylWcbtEDXx6gdiEO8Nqwe0a0HPu9lvN0jY50OzN3KqfgVMHXEsk0OlaHGomspcUn/nNFSPGjK9C/YpRgxWAVrabJJ5zSpzI1FZvoSOOfpn782tXr8beYTVMnjYnxve4uAwJUGmN6gbKQNqMMbA2Ry2qAyhsBMrNh2K4zIgvoB48HPsLP3s42R7dtjEqfpTs9jlkj6syhsWyBGepmbELvLzDJHURpW7qIf2JDDXyb2KvfMUo4nOid3jThBXR5TqG4RCYY/0EZv8wltLNdxWREPxQfLJtDhg3J12wyzaA/NzYUPtbg9nG155f4bvEsC63aEj+KEv1qoz53mrKn1WDDvJg/k2vMvQFYpcbY9+tpt4MlOLyfk1LXy/pOmuJ223FfKYqxBPShYSlZIxrb9vlfCkUnk3joqKP4BumNAuu7vGM6fESJXjL8ldt8PXzHsF6h6CgyrYS/W+DV4EQRFVqpqw==",
            "1; BLUPR0701MB1713;\n\t6:0x7SDeODw1SnQP2+/iSDERa29MXvoaAPIbiGdQMBR2YyZrzPR/nKrWehNJZ9whE7CCY8fLLS2J44Dtlu9ok6F0bOeOaGdMFugfMuWlt2qf1c6KZXlRlxpUxSkSq2CYqUdelPriDt86N4gW95Hl1uZiWFqImC6uZFZyqFrP5vfLw4MPt52rkqKJ4LLqfz7zB5vrVlqGkJ7n/GAl1/y/ofKyrF/+O1+7Ip01sd8JhlVP7F+sPNz66CzDnehSmVS8k18Tv/qtrbJ6B8y6Z5YW7VJdsnbhgiej0es+4/YO56OOVPW1aoCArrPQbUeriqX5eNfuES5tlCcVgpWxQhjbgftXH5/bCZyBzyZ4t+fUEQKXTRBkXroxM86ftpwR50mRLLq/nOATsHaN8I5FF9rGu7E0CMITewNELugai4zutaXKM=;\n\t5:pEOhYuTK4RYS78cl/ucjWEfENPvkfosEXw4914RuTLBRC4w1Bqo5nDoJgc9ff8gmR8kCP0CybARCN54qU1ndqLYAceI+oNJPZvRD4BY1sXx4cw4YhTcLE5NJNHm++B2fge/XrmrZDXehdYqfgUnrbA==;\n\t24:sepQxE6eUyic2NM5ngVJV8GkcyIM5B5z0ZBEkFWCl37CKMgYjV6SFaKcdrm+wMNXfnEXFOwPoFbcXiWfYfxaQjjZh4zmAfJBroz7mh2bpYw=",
            "1; BLUPR0701MB1713;\n\t7:pX8AZvSmpkSuN1J2KJSFirUZVcjept/P9+qvbxYbI7OtMkyqPPjbwipfDVMMB3hFJC5Y4g9fbgXhB72+jYs31AV2gd+nR4N6mfBiAUMexV0irnmQLr5N1ybloahmzdbGpywn9n4p3Y0M5M3tcXVWva2LZ4RlXrk1s1iREW+iGYO8w+aqB9VT05aLfOmCyOOpxpfuPMmnrwte8CScNKLuwOSIHOvtiBu9JmL/DVDg9pQnv/fylGjJalhM4dlxJgNGk0nNCir4ghMLyTXvSRknbFHuIH8bBmhiDpFxZLHrYgSuqq/8cLYz0PsSUbXAHRaAZTt/Dy3Z33J9SWv33KYGpNCuO/2Zq0RZQVMaFN8UYVcLKEmhnfV3bsaMACPDEFyVowmbIOLEStGITrzFCCkV/UpmZVoqDskVOL8z8+nyq70bbCoKXfsBZwkOwWzfu+oDpwTB0/kzo3YJEOfoOWwKIA=="
        ],
        "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;\n\tRULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123558021)(20161123564025)(20161123562025)(6072148);\n\tSRVR:BLUPR0701MB1713; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1713; ",
        "X-Forefront-PRVS": "0169092318",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(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);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1713;\n\tH:localhost.localdomain.localdomain; FPR:; SPF:None; PTR:InfoNoRecords;\n\tMX:1; A:1; LANG:en; ",
        "Received-SPF": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Dec 2016 09:52:46.8695\n\t(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\n\tread/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>,\n\t<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>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Santosh Shukla <santosh.shukla@caviumnetworks.com>\n\nReplace the raw I/O device memory read/write access with eal\nabstraction for I/O device memory read/write access to fix\nportability issues across different architectures.\n\nCC: Huawei Xie <huawei.xie@intel.com>\nCC: Yuanhan Liu <yuanhan.liu@linux.intel.com>\nSigned-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>\nSigned-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>\nAcked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>\n---\n drivers/net/virtio/virtio_pci.c | 97 +++++++++++++----------------------------\n 1 file changed, 31 insertions(+), 66 deletions(-)",
    "diff": "diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c\nindex 9b47165..7c1cb4c 100644\n--- a/drivers/net/virtio/virtio_pci.c\n+++ b/drivers/net/virtio/virtio_pci.c\n@@ -37,6 +37,8 @@\n  #include <fcntl.h>\n #endif\n \n+#include <rte_io.h>\n+\n #include \"virtio_pci.h\"\n #include \"virtio_logs.h\"\n #include \"virtqueue.h\"\n@@ -316,48 +318,11 @@ static const struct virtio_pci_ops legacy_ops = {\n \t.notify_queue\t= legacy_notify_queue,\n };\n \n-\n-static inline uint8_t\n-io_read8(uint8_t *addr)\n-{\n-\treturn *(volatile uint8_t *)addr;\n-}\n-\n-static inline void\n-io_write8(uint8_t val, uint8_t *addr)\n-{\n-\t*(volatile uint8_t *)addr = val;\n-}\n-\n-static inline uint16_t\n-io_read16(uint16_t *addr)\n-{\n-\treturn *(volatile uint16_t *)addr;\n-}\n-\n-static inline void\n-io_write16(uint16_t val, uint16_t *addr)\n-{\n-\t*(volatile uint16_t *)addr = val;\n-}\n-\n-static inline uint32_t\n-io_read32(uint32_t *addr)\n-{\n-\treturn *(volatile uint32_t *)addr;\n-}\n-\n-static inline void\n-io_write32(uint32_t val, uint32_t *addr)\n-{\n-\t*(volatile uint32_t *)addr = val;\n-}\n-\n static inline void\n io_write64_twopart(uint64_t val, uint32_t *lo, uint32_t *hi)\n {\n-\tio_write32(val & ((1ULL << 32) - 1), lo);\n-\tio_write32(val >> 32,\t\t     hi);\n+\trte_write32(val & ((1ULL << 32) - 1), lo);\n+\trte_write32(val >> 32,\t\t     hi);\n }\n \n static void\n@@ -369,13 +334,13 @@ modern_read_dev_config(struct virtio_hw *hw, size_t offset,\n \tuint8_t old_gen, new_gen;\n \n \tdo {\n-\t\told_gen = io_read8(&hw->common_cfg->config_generation);\n+\t\told_gen = rte_read8(&hw->common_cfg->config_generation);\n \n \t\tp = dst;\n \t\tfor (i = 0;  i < length; i++)\n-\t\t\t*p++ = io_read8((uint8_t *)hw->dev_cfg + offset + i);\n+\t\t\t*p++ = rte_read8((uint8_t *)hw->dev_cfg + offset + i);\n \n-\t\tnew_gen = io_read8(&hw->common_cfg->config_generation);\n+\t\tnew_gen = rte_read8(&hw->common_cfg->config_generation);\n \t} while (old_gen != new_gen);\n }\n \n@@ -387,7 +352,7 @@ modern_write_dev_config(struct virtio_hw *hw, size_t offset,\n \tconst uint8_t *p = src;\n \n \tfor (i = 0;  i < length; i++)\n-\t\tio_write8(*p++, (uint8_t *)hw->dev_cfg + offset + i);\n+\t\trte_write8((*p++), (((uint8_t *)hw->dev_cfg) + offset + i));\n }\n \n static uint64_t\n@@ -395,11 +360,11 @@ modern_get_features(struct virtio_hw *hw)\n {\n \tuint32_t features_lo, features_hi;\n \n-\tio_write32(0, &hw->common_cfg->device_feature_select);\n-\tfeatures_lo = io_read32(&hw->common_cfg->device_feature);\n+\trte_write32(0, &hw->common_cfg->device_feature_select);\n+\tfeatures_lo = rte_read32(&hw->common_cfg->device_feature);\n \n-\tio_write32(1, &hw->common_cfg->device_feature_select);\n-\tfeatures_hi = io_read32(&hw->common_cfg->device_feature);\n+\trte_write32(1, &hw->common_cfg->device_feature_select);\n+\tfeatures_hi = rte_read32(&hw->common_cfg->device_feature);\n \n \treturn ((uint64_t)features_hi << 32) | features_lo;\n }\n@@ -407,25 +372,25 @@ modern_get_features(struct virtio_hw *hw)\n static void\n modern_set_features(struct virtio_hw *hw, uint64_t features)\n {\n-\tio_write32(0, &hw->common_cfg->guest_feature_select);\n-\tio_write32(features & ((1ULL << 32) - 1),\n-\t\t&hw->common_cfg->guest_feature);\n+\trte_write32(0, &hw->common_cfg->guest_feature_select);\n+\trte_write32(features & ((1ULL << 32) - 1),\n+\t\t    &hw->common_cfg->guest_feature);\n \n-\tio_write32(1, &hw->common_cfg->guest_feature_select);\n-\tio_write32(features >> 32,\n-\t\t&hw->common_cfg->guest_feature);\n+\trte_write32(1, &hw->common_cfg->guest_feature_select);\n+\trte_write32(features >> 32,\n+\t\t    &hw->common_cfg->guest_feature);\n }\n \n static uint8_t\n modern_get_status(struct virtio_hw *hw)\n {\n-\treturn io_read8(&hw->common_cfg->device_status);\n+\treturn rte_read8(&hw->common_cfg->device_status);\n }\n \n static void\n modern_set_status(struct virtio_hw *hw, uint8_t status)\n {\n-\tio_write8(status, &hw->common_cfg->device_status);\n+\trte_write8(status, &hw->common_cfg->device_status);\n }\n \n static void\n@@ -438,21 +403,21 @@ modern_reset(struct virtio_hw *hw)\n static uint8_t\n modern_get_isr(struct virtio_hw *hw)\n {\n-\treturn io_read8(hw->isr);\n+\treturn rte_read8(hw->isr);\n }\n \n static uint16_t\n modern_set_config_irq(struct virtio_hw *hw, uint16_t vec)\n {\n-\tio_write16(vec, &hw->common_cfg->msix_config);\n-\treturn io_read16(&hw->common_cfg->msix_config);\n+\trte_write16(vec, &hw->common_cfg->msix_config);\n+\treturn rte_read16(&hw->common_cfg->msix_config);\n }\n \n static uint16_t\n modern_get_queue_num(struct virtio_hw *hw, uint16_t queue_id)\n {\n-\tio_write16(queue_id, &hw->common_cfg->queue_select);\n-\treturn io_read16(&hw->common_cfg->queue_size);\n+\trte_write16(queue_id, &hw->common_cfg->queue_select);\n+\treturn rte_read16(&hw->common_cfg->queue_size);\n }\n \n static int\n@@ -470,7 +435,7 @@ modern_setup_queue(struct virtio_hw *hw, struct virtqueue *vq)\n \t\t\t\t\t\t\t ring[vq->vq_nentries]),\n \t\t\t\t   VIRTIO_PCI_VRING_ALIGN);\n \n-\tio_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);\n+\trte_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);\n \n \tio_write64_twopart(desc_addr, &hw->common_cfg->queue_desc_lo,\n \t\t\t\t      &hw->common_cfg->queue_desc_hi);\n@@ -479,11 +444,11 @@ modern_setup_queue(struct virtio_hw *hw, struct virtqueue *vq)\n \tio_write64_twopart(used_addr, &hw->common_cfg->queue_used_lo,\n \t\t\t\t      &hw->common_cfg->queue_used_hi);\n \n-\tnotify_off = io_read16(&hw->common_cfg->queue_notify_off);\n+\tnotify_off = rte_read16(&hw->common_cfg->queue_notify_off);\n \tvq->notify_addr = (void *)((uint8_t *)hw->notify_base +\n \t\t\t\tnotify_off * hw->notify_off_multiplier);\n \n-\tio_write16(1, &hw->common_cfg->queue_enable);\n+\trte_write16(1, &hw->common_cfg->queue_enable);\n \n \tPMD_INIT_LOG(DEBUG, \"queue %u addresses:\", vq->vq_queue_index);\n \tPMD_INIT_LOG(DEBUG, \"\\t desc_addr: %\" PRIx64, desc_addr);\n@@ -498,7 +463,7 @@ modern_setup_queue(struct virtio_hw *hw, struct virtqueue *vq)\n static void\n modern_del_queue(struct virtio_hw *hw, struct virtqueue *vq)\n {\n-\tio_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);\n+\trte_write16(vq->vq_queue_index, &hw->common_cfg->queue_select);\n \n \tio_write64_twopart(0, &hw->common_cfg->queue_desc_lo,\n \t\t\t\t  &hw->common_cfg->queue_desc_hi);\n@@ -507,13 +472,13 @@ modern_del_queue(struct virtio_hw *hw, struct virtqueue *vq)\n \tio_write64_twopart(0, &hw->common_cfg->queue_used_lo,\n \t\t\t\t  &hw->common_cfg->queue_used_hi);\n \n-\tio_write16(0, &hw->common_cfg->queue_enable);\n+\trte_write16(0, &hw->common_cfg->queue_enable);\n }\n \n static void\n modern_notify_queue(struct virtio_hw *hw __rte_unused, struct virtqueue *vq)\n {\n-\tio_write16(1, vq->notify_addr);\n+\trte_write16(1, vq->notify_addr);\n }\n \n static const struct virtio_pci_ops modern_ops = {\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "28/29"
    ]
}