From patchwork Wed Dec 14 01:55:48 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 17943 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id BB343FA49; Wed, 14 Dec 2016 02:59:28 +0100 (CET) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0064.outbound.protection.outlook.com [104.47.41.64]) by dpdk.org (Postfix) with ESMTP id 0D1B44CE4 for ; Wed, 14 Dec 2016 02:58:48 +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=KptT7PXl7jcruaDNgfPuGOLTKYjzqe/1Rh73NTHifVk=; b=M5cHZw3hVvhOOzRACrB8aLZTfxS6pR0Coqdg3Xqblh77uC+RM2fi6HqaXaF4yakLMtavTaOjjF7drEeFkoBkZtCOfTDVaaxBNJfgOiG55UW6YrnEJjSYotJ6nSl2RECyzQAoW3VFUu4vIPgntFit+9h0yCig9tLZkNYWkeAXdes= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain.localdomain (122.166.91.229) by BN3PR0701MB1719.namprd07.prod.outlook.com (10.163.39.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.771.8; Wed, 14 Dec 2016 01:58:40 +0000 From: Jerin Jacob To: CC: , , , , , Santosh Shukla , Jerin Jacob , Wenzhuo Lu Date: Wed, 14 Dec 2016 07:25:48 +0530 Message-ID: <1481680558-4003-19-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1481680558-4003-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1481680558-4003-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [122.166.91.229] X-ClientProxiedBy: MAXPR01CA0006.INDPRD01.PROD.OUTLOOK.COM (10.164.147.13) To BN3PR0701MB1719.namprd07.prod.outlook.com (10.163.39.18) X-MS-Office365-Filtering-Correlation-Id: 81f05c80-eccd-4192-6d59-08d423c4bb86 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN3PR0701MB1719; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 3:QzF9jVNbGKQ3Ms5E8F/5o1y8zvKhsWobCWFDu5oakIwvG+G/66Qpt0ZQHLXzWRXFCtbfXXUdCKQY7pj7b1Y114yQlaMYoSgQJN5jMoCsG2+U+BEkhD30OnZZ2bDjZXAsTn8GTn1zluct9ujStPIO7RcoC6klOFQGQQzo0fantAwre6YabXh1xdpRWw7zUSqMwO5dHFivicMpkM+oJ+AyAbxKuA1P4rx6Nx+YUDPLg7SCFjJCYPW8XNLBKhgEuhPWi7CsbYVTewDs4VJuDBFdTw==; 25:NsnnLHnIMdFNnZt3S1HkKjRfMH/NpkCLhG0W3/8tkhkLtpuDEoLOGgeua8sIcYuCiOEzaBX61eUNadEHIrSdjlgkhnt8Kb89t82MqRxWSIIXtYyGraW9n09RnMzYd02cz8u1Bv0BXFlm52I2JiObExsS9cj4qs0qrQ6O6mfuTUoYgvQaYuLZQaQyZRyMfuXlVrJnFIDYXTzn/WrkYh+pjMqSSE01CDZUuHOWMUFxtY+IKrgoZHQhCKTX5ijWgYML1rpz8Wq5zp+GyOZw4v0NrmXwej6f4IiP+2BcUigxN9etic4g6em3VKnGglKO17lKzZxnzv3LtvsmUyi2c+6i7w7nOlpFpb2x5faXb1Iq/GaAhsmwEKsZSJz9YIC8NCByOoPohiogtJsI4IcPv0tJEJVQkVXHT41axNb0CmKaAbVzl4Ta/5rdg67FzBctDEKP9JCfUrw9zlH8JzUSa9Wg+w== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 31:gW+9/6zAIiKCi6SBXhIRRHyHKt3GgJq3rtO6PpW8pDiA2evgf6tBy2a8X4G9wZs4U2Vi0o5VLAfur80kTSkaZGYcrN1CoVrbVHy4t21IUMwqvy6jw4JJF7z8k2p3FpoFKaSrTjVlTERYaAoA3qVAEEvXReNPiACIzAy7c0sKOU5OmdsbiX2vGF7BIC4Cjzk1UKqZNEveMYrQzIWJ0wmzlX8gEIUzrwT5caV2PsWf13/Ino7kWUjSbc6DEGvatuaShJZuBF32xwk+bKFmHPyZKzw+jqNLVFqKOy0DPyVS8yE=; 20:ddCgpaTq9mUoUFwFr3rAaHTa72Y8F8Zj/V2WjxNnQOBGZWdef7z0VTusw7gxD7k1OV2j7RdPMsKi7X4J0TFQbdXhRWA1II9teXaw624MwKhY+En9IQNM2xs6/dIcd+kkR8fBpucYFXPsM9jAWuFPi92soVaIIFNvQWGZ0/sifnBC3NGr+zsoiQJ9WV9GIQOyXX5Ksye2t7KB4mzzdNY0se0FBOWlrtZHaO4pDdVgDklNJtuldAJLqY5duIgfy+O8Yc6I2VpPj1Y7ohKLwwwqLdTBknJv+CmGQljqQUPJ1O4TT/Yytb690dko4w/Nwt3CkgwWzv7z3OtFkJVpJ410v9mBWdsVTfQxtggAMD5hlWFrJ5qWu/9UQt2PitZiS8bnW+OvjHfR7wC5TVkw9CdMtfOL9wMZkhsuRLHpWD4uaIFXgZB/xopKAslDkKKYmp+aa6AGPMCjF7n+QMjO1uODA0vKqv/ABFFrUTouCeZAt1m+KqPRoC4ogXl/WWRDShblBmRvN+6T4VidfdPzL3x4X2wCOEHKP+btY1RUYHUdLzH+Bq+s9FulpDTv3MD82SBqXILeorxU2UIS8KsoYJ5AmIjPiYMYOw/XvpWidCeVJfM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123562025)(20161123564025)(6072148); SRVR:BN3PR0701MB1719; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0701MB1719; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 4:J/D6T1vsxoJxNm+rIpLroBP/iShZjsfLfej/QZVvp7q3bD+b9/8n1qDeGFlzLWqCMvYJUtV/GrY821kh+fcPy87fAcBM8a1dp7v17Yaf1P8nOH/YdvsH5i9VEeUpMRr3NskjdqHUSui9R6IU2LZ5Hyq50dIVjgJlSS9xsAUqPwrDlSocjkzrB7U67VK/+6zataL+BfEkBLnblFR/Et2YtGCxw1kgVMXuD4EPvWYdfc6ObqugQRDIbfVFfeSZ5EtZnTqZKKOez0cbVMqaCr7S5Bqw7D2BcO6R5Th/aVqDPR+GxlFKxB7ARBqkJjqATRDOvOqBDt/y6pEmh+vEBvsTwBX3ZQu6lI1gdRf+NDg8QcBgd46C0V59kQSM0WpeJWP+z/L7pyyVm0aft4d+LmO+URGCo6grAQSuNZ3P4MhyWQfQzFaUlUwQ6X904bG4rJDoRB6SdEB3MI4BKRVSEYVSi8YtZ4rYy67o3iiTUE/hQqq2KioBFH4IwwTmb+wxe0SUqDmSZSsvsVf2a5Fv8jl7ysxEMJF9B6XIfNAUC+81G3w8KVec9aXMy5As+Jj2hV3cKfwXxN9oswkQU3n4cyggmrRScCeYknF7rJCwRyLrER5aGkYe2N3D+hzuXfNxJIoMT8UDpPFhFrGwyMmVdab5xA== X-Forefront-PRVS: 01565FED4C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(39450400003)(39840400002)(39410400002)(189002)(199003)(6116002)(6512006)(6506006)(6486002)(3846002)(66066001)(68736007)(47776003)(92566002)(5003940100001)(50986999)(76176999)(81156014)(50226002)(2906002)(110136003)(33646002)(6916009)(101416001)(42882006)(2950100002)(4326007)(81166006)(38730400001)(105586002)(8676002)(106356001)(5660300001)(305945005)(48376002)(97736004)(50466002)(36756003)(2351001)(42186005)(7736002)(189998001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1719; 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; BN3PR0701MB1719; 23:FbaUz6b2Q9Pv/UNEsaAB9PWov1aQia3hMgoxIVs?= A/DSBDe6LQRGGi9Xp1Y7I1llO7uZhD+IGeGQ6DHth7OTec29IHW96zfRbpsjQXIzW87AZ9MjJBTtuAtfdGB2xt9MX8mFIjUjwAdonbVSrmcjFI+ytuBlbrKJhC2CvxZ4whyc4xC6C1v2MHPVAyjIxSZwG46Df5giKBEPqZ645Xv4I1rAmBQa6cYK0/T5u7Ph9hJM2RwBUtRwBRmNC8/lrqvUCS7xbFLuHU7t5GD0LUPpEWYS0PAVJtmaElYPIEVsM923Mm2FD4UlWB/IKBOX0h6nFSqGgMCJU1ynENLAO0gMvRSvfn8cSuUDQsNBzSrDgf9vuZaWAHTp0GSSIH41rnLUU26MQ61nLCt2CAJUmu9Q4CdKh+ZRNawuK2eurXfsogCYQkC6ZFkmIh5FDGjJ7uo6nWII8XYifupwAsOInLGuJlFtS5fC/9V76Lc1ZQjQUar2eb7zTsmmpC6DlLqYhLc11wHAB34MZ2jhfzcL378+CS+F7mVwApahlSUwd/LKqYU3eeEF1UiBHNnFzq/t5mpUXpM24Fr04W6WuhJvUkKfi+KFGK2hQfbQJlR1IZHXCjMYYJjR6WSQtFrgx28BNlaU5I7EV2iMM2pjGt4/CPnIpP6aCa6rhSOdJucJPV2YwknQzqZ5t1927F2gN/NQytxzceHKg+IEzNDK0EaR+jckUz+HKF7HS06DUnkOsZ3Rremz9g4rI+uyXEl4obpr47sSGHUfmhazaVicHJtuPrZQcP0wsqQ816vFaNChdr/Kxzedoh2lZJX7R7EtsunXd/pNxH9aGKzL5XOTWrSzMe2GQJQ6EFJWtHVgI37QwQkuzUrO9sNQ4ozwxBtIWANlGS3HFQPj6YL4F5I1LKAXlDFYObcBQQRezFXdREjPrWtQTPOViIcE6Icxo8NdCP9y0+nuUm9FejZ8O8/7bfkFXex+waQNiVqpLq2RhBpFba5DrfkMewqqjY+HmO2FU5Zi7wEpgWaLARY+aruWz0GzF56EeezUSBhW5NBgJTO5Ssy0TSoCLjUP+zDpatzgm8Ruwns/HFzUcpLon+dnYzzmrJ0cvu1B5m3YG97dLykxNJnwvAD0= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 6:w5hxlyDHAcjzV2oxBcOPoJCo0EhCLc/AzeQd5yd8ixy52xVh5tK7ETlvtXB9piIARDvmKrkSFisUUpCkwvGJMCT1jQXmllXelOGdnX/kkqNFDZuKhc//dpVm+6APf0f+paU85q95WSJSs7JwXRywR5khcYhjmqARdwjBQEUHrPfdEHqy/ss57t9cRWk2DVNcFM6ibNWWmct/PHfy3p80DgPh/nJ6epkam0ox2XqPcSgBV7Kd34DT7ywGD4fIjxBB/55HBGDlY9S6yl6kRWS4G6Kr2uiBljLMelGiwVi8J7ofHnVi51fMPg30SlFVjT/WxWf4YZuCa+rPhX5ERpUd4y+96Y3NAwFJNNd3TqfPd/YcvSTwlxoCqzDqwGt2LAx3HWHq4HdffkpWX5TNDS10e9Vsj3klekslAprQ2R8niZ0=; 5:pbTxAroA2e/WzW1OBJ6XuiU2ALn9K7Y/4kO2BLeH5QheGKXjJoIR4ts1c2PFra5h/JSszpgovVG6wj6jqu6yVVRAcWXuGQMHZbp2ZZ4ToGEq1pjIzQKtgJO9etDHfSTzY7Rz8yVLMnJEqo4sb6mO6Q==; 24:Bzuo8d5G82sdNKilCnASxJzsf7iDkowyXTx8YEOEBbXetXF0HdV+Dn+vpadFXJFE2RCy7kkDO6X72glZ4lyG4Daikn/Wtfts5bDRBRuHRyo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 7:THpQs9m3cxaqxnRqGCQ9dY7DpJF3Wi/VsFDsrCEy7KkPgN+czyc7VRqn6m4p3F8FCmKRCMBCaqgp1L5JmonVhG1u9OJ6X2wzd7LFD/SCH2lcrRfkgOun5LSaoxn2nHwVUMSLGV2VTxGw9gaHOZ1+zQ84RBI/ydBc7AxwhysraCnTr8sbqZ9S3olzSq93sVFY8HfD5nsfhDxESvGSIEUTRVSTJ92TnffpK5lz4VI/xOCNUrQ/EoCC+RdSjPLb1l7ziQUTMkci5L9t29q3gLXBY8FNQVtnGmW25kQeoU/Ac6Ehx+9I5wbzYx13Cpui+TNnjPuEl1giWy8JzDMXEKnaXWRFQWMBUpFxlhbtACMauA12lkF81scWPXSOnpJMNNCXtgJ9WX6HsQqoD+VEu6tk/MvMtWx9XqGpiQGhSd/fY4f8YqlKD3OumIFLxeC4DRyrajjQUwNSaOzZ7hmuljvzng== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2016 01:58:40.1718 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1719 Subject: [dpdk-dev] [PATCH 18/28] net/e1000: 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 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: Wenzhuo Lu --- drivers/net/e1000/base/e1000_osdep.h | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/drivers/net/e1000/base/e1000_osdep.h b/drivers/net/e1000/base/e1000_osdep.h index 47a1948..dd9a2d8 100644 --- a/drivers/net/e1000/base/e1000_osdep.h +++ b/drivers/net/e1000/base/e1000_osdep.h @@ -44,6 +44,7 @@ #include #include #include +#include #include "../e1000_logs.h" @@ -94,17 +95,25 @@ typedef int bool; #define E1000_WRITE_FLUSH(a) E1000_READ_REG(a, E1000_STATUS) -#define E1000_PCI_REG(reg) (*((volatile uint32_t *)(reg))) +#define E1000_PCI_REG(reg) ({ \ + uint32_t __val; \ + __val = rte_readl(reg); \ + __val; \ +}) -#define E1000_PCI_REG16(reg) (*((volatile uint16_t *)(reg))) +#define E1000_PCI_REG16(reg) ({ \ + uint16_t __val; \ + __val = rte_readw(reg); \ + __val; \ +}) -#define E1000_PCI_REG_WRITE(reg, value) do { \ - E1000_PCI_REG((reg)) = (rte_cpu_to_le_32(value)); \ -} while (0) +#define E1000_PCI_REG_WRITE(reg, value) ({ \ + rte_writel(rte_cpu_to_le_32(value), reg); \ +}) -#define E1000_PCI_REG_WRITE16(reg, value) do { \ - E1000_PCI_REG16((reg)) = (rte_cpu_to_le_16(value)); \ -} while (0) +#define E1000_PCI_REG_WRITE16(reg, value) ({ \ + rte_writew(rte_cpu_to_le_16(value), reg); \ +}) #define E1000_PCI_REG_ADDR(hw, reg) \ ((volatile uint32_t *)((char *)(hw)->hw_addr + (reg)))