From patchwork Thu Nov 5 16:38:08 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 8715 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 C710A9192; Thu, 5 Nov 2015 17:39:33 +0100 (CET) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0073.outbound.protection.outlook.com [157.56.110.73]) by dpdk.org (Postfix) with ESMTP id 8E7609191 for ; Thu, 5 Nov 2015 17:39:31 +0100 (CET) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@caviumnetworks.com; Received: from jerin.caveonetworks.com (111.93.218.67) by CY1PR0701MB1977.namprd07.prod.outlook.com (10.163.141.19) with Microsoft SMTP Server (TLS) id 15.1.312.18; Thu, 5 Nov 2015 16:39:28 +0000 From: Jerin Jacob To: Date: Thu, 5 Nov 2015 22:08:08 +0530 Message-ID: <1446741498-3096-6-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1446741498-3096-5-git-send-email-jerin.jacob@caviumnetworks.com> References: <1446741498-3096-1-git-send-email-jerin.jacob@caviumnetworks.com> <1446741498-3096-2-git-send-email-jerin.jacob@caviumnetworks.com> <1446741498-3096-3-git-send-email-jerin.jacob@caviumnetworks.com> <1446741498-3096-4-git-send-email-jerin.jacob@caviumnetworks.com> <1446741498-3096-5-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MA1PR01CA0067.INDPRD01.PROD.OUTLOOK.COM (25.164.116.167) To CY1PR0701MB1977.namprd07.prod.outlook.com (25.163.141.19) X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1977; 2:Yr6yifIW0QrDVpjn8KeM4rVjNFdCjlf9+Fb1WkpPoJphEAoLSrLYr4nBjR7ZujlnO9Ka/HN4Zb4jJfK1w4CzVPEtdFKa2BOmuFPnLOoMDO2LhfsP9MSfImNW6GE2K1FaxONY5e5s2DI/wNKjUtwah10d0z6KKRdM7N+2kj1MiLk=; 3:C8MvfDnNv8K+MGvN5EmjTUfc/K/jgl7f0+z1faj2qNOKec8lvbgQyemHbqEFe/nCL4CMEkhYA88WzP6RA877jch422L/hSlsfPcatvGqxX0AqvJtTMLKa8UUaWdm9M45v1BocR3pDGgajk/UawuQJw==; 25:J4KKLrKqPoK9/AjpFWWYC32ms7FEf3dNUWNxe0Bwxy5xbzkKbhniqH4it9qjXAD8lVXpNn9phgKjiuR8MPxA+tXD7Vx0AXSnDTBRCp2zd3JYJFH3p93EtX2AYhy6h4Z0S09vORnXcg/1/PBJIv3Dit4fGt9X0dThIcd0mkZn+q88IsR7IgpAayWm+YS131GOfL6wcWqmjGIcAGlVNQj39BtMM0CT84gxzGVmt3VaWU5X52b3jo3VVLjBAu+6hXhXb4eyDmRxLHdhuJpskTfZ5g== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0701MB1977; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1977; 20:6y+CT6DSM5vFhTCnTj4aNxViZZ122VdO7xuKddZwVmBFflnxu6816z4WIJbG62onLsKHEwmptzo6GsmovZKgqoGhMlder/YFKYVS9RpeVjJpebkHZ5mVl/xpzmXW4Aw/zXsQMQoearF2/gc1NzxWRgp7tWUNHEPU7XTO34EUO1VusuJ8rdv0HtX/ZJz+wTJzJWvvtckaLT0DpF0r8edtp/eurCwC1FhM/U7UEbeAWTcdV0yS0V0qouBuBuhqbpkdjHdiDkH8vOtRZas7+uh5UYx/bGClVj5rs+8iOKT8dWeDndTCMCpbmzoVsz8f5N5Zad3fqWccqhKp4+GPU0sA50DacZwoupJjVsMkXrlkGIHwvvoWlMaA/dxQ6pN8dhIX9TGlJXc/Hjp4rmjVwXUJmUj1N6u/rvN0vayTTLY2MAYsG53zzjvQT9ADusgYmIgwVxJS3TtXFaWz+Jupi30XEWZiWK9DG0M+3JNvNhtj4sRTv844D6qZgHIWse90dYS3K1KLOWO9dgsUc7PuApxMz6ehWMEmZnhGlghsa75+NAwLH8dgWqbZroFoTLAwQlU52v3To2NthpXAqZknBFmq28TJ5RQ7snmk9/MfW70UY8M= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236414709691187); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001)(10201501046); SRVR:CY1PR0701MB1977; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0701MB1977; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1977; 4:VAK+YcDkYKdGiyopZAlC73U/N/J4Duobx8hh0/mKhbjvKB3Dz0pKEZYKZABcP1168Mtj9xndeak1mMdZ6ktvmSezxJRoo8T4ybuMDejPkYmAtGgRAjpOAVT7qcJCF2eOhpZvIrg7PYhF1l9NOw2ytsU07otNH/PnGOvjAcm1cIZCGZ/oHl/7rsq00kptobYotKIo9hOq2jJwmLjBcz1e/TLcmqzd2crUzvYLEsNw6niYEKABD1aELYc0lQYfWl+ZsSWoMnQ+H+TS0n0wDZ87wrW/vVggKUWQgbVj8DEVrMQANGQt4LUQ8ejGOxhXTxfUm9t0F2H5kPXnfTqTcspcwUPG4QpE7GEy9spVcsaU5Vk5K2U4SSwgOOg1DTl9GOX8 X-Forefront-PRVS: 0751474A44 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(189002)(199003)(5007970100001)(86362001)(5001960100002)(107886002)(36756003)(122386002)(40100003)(189998001)(42186005)(5008740100001)(87976001)(110136002)(97736004)(66066001)(101416001)(92566002)(2950100001)(5009440100003)(4001430100002)(19580405001)(76176999)(5003940100001)(50986999)(50226001)(50466002)(106356001)(77096005)(105586002)(5004730100002)(2351001)(81156007)(229853001)(48376002)(33646002)(19580395003)(69596002)(53416004)(93886004)(47776003)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB1977; H:jerin.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0701MB1977; 23:gGC+bkoi+XItaf+7sFKOW1ZN0hIW7/CX547KKOF?= =?us-ascii?Q?lhDVxUAKfQAaa0IYEXJ3d4/v8WAgpNCQCbVjf0S30v9kII4ijeu4jFKQmnwu?= =?us-ascii?Q?wonIMKW2ZyIj/0WCILa5g8kTlMX7MiLrbA4zZvbrT2HfKFREueeEb8stgBWV?= =?us-ascii?Q?9WUTHDoXn2Z+zhxu6a27otisBi6h/d3K5DDAUiAQx68YG5nZlaleDpilBVFh?= =?us-ascii?Q?0VV9JROCFwM8WeSfLBQmVBD431WlhvK3k79+kcctpXyTBvc01swdW6Nc+TJo?= =?us-ascii?Q?B6PmJrS6A/6wZKwf+JI2tkjtQl3anbRh/Lj/eKW7e3+iHaYZIfjq3wQvz0/X?= =?us-ascii?Q?ftnfNVuwF8BSKL11tVOHykoM2Ui1LKpW+uliCa0kk34BFu8oKtMmz4chu/Se?= =?us-ascii?Q?D6W4mh2uHLJfTHrDjz9DT7NdWbVBPOEJgnTbJKqImykPt79f/Xqg4IGM8s3t?= =?us-ascii?Q?x3kwGeRsDheqgllw+HUHXQRWoHdLwYwstC/Utw206Um2xsoDTiPpcsoLC3WU?= =?us-ascii?Q?8hwxiTYGHeNUto+OogJAEUe6WJAnxc34Wyc/QBYdG7ZfDyLM5z+7qHsOC8y9?= =?us-ascii?Q?ienTJgRdpGeZUzCm7QQcSrNgltc5x66r2IN6gPAdnaQHsE/l/j8bw4WdmOkb?= =?us-ascii?Q?FE9kIyNjhJKJQf4dmCafzTaeJeAYwwz7Z7XYYuLAdx+BHPelnYfL4cPpdfZs?= =?us-ascii?Q?3nnojlBF/neU8jmInZgJIGFjHUkXFZrA5s47VvicA+zg+KNG/ZhGRz9lJfVB?= =?us-ascii?Q?fIYv/b8O4fEn49accJMfYdzpQPmXkD8rKSCnpruC1sHn9B19xnnjFJHWWW0m?= =?us-ascii?Q?YrRDcjZ+SBSapil5z8/iX/Lv6dL2eAYtDbYQ2ctz++GJ2kJAnVvm1Z2lNLzO?= =?us-ascii?Q?wAIFbBYXD3xHFpai0auyt6EHF9at2/x8ivUTifYG+7438d7F1ksIMKDJfmnQ?= =?us-ascii?Q?rilUwyBCmCjJxSRHcDooij1w7UxkMFDUIAvjK6ECJoWEbJPOE/1M7Yb4cU0G?= =?us-ascii?Q?hEKaOQbWGfBz8EcOG/2n00IppfnqlSHt4fbfLrBGtZRhu8Tz7Tv45qAVNAQJ?= =?us-ascii?Q?6qmFAOdXlTUPWKby5YroP05wVnBXZq8G4Bu1qFa7uiut/xfCBt1SBgqiA79r?= =?us-ascii?Q?W4zaYKNlRWxSHyqsbgUaLT7myAGVZPP9H+k/2zSVLVTHt8PJo6HV+DA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1977; 5:NjN8QWaUeBzDWmEazAHOPEKjx/cHMhzi/a1va7DZZE+moVhHdqdddrtGqrhnc+UtfIXbWslJGzEyOm33zyW9yOPtPMKVlvNppEU9/mnaADa0vFxplx9SvsDA3RnbIfb61/qQ6f+Jv9sv8VFTltgv/g==; 24:nxw/S/B8ygGrrTH7mR1W8Y1q4ZsF4MtiPHHXpAxBV6qhLfb+3NHwFrgPWmT6RjYVO0jZijliMjN9lpX6Hs59ELjR763el9stbFm/oChZrII=; 20:AJ8+iwNkIUAZOubomZtrlxLRvGsonUeXoBdWBM5vweWzz44TlEciGa1MbhYezzL6yTCdgrPN/tZn1yU0d10Kbw== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2015 16:39:28.4603 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1977 Subject: [dpdk-dev] [PATCH 05/15] eal: arm64: rte_memcpy_64.h version based on libc memcpy X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Jerin Jacob --- .../common/include/arch/arm/rte_memcpy.h | 4 + .../common/include/arch/arm/rte_memcpy_64.h | 93 ++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h diff --git a/lib/librte_eal/common/include/arch/arm/rte_memcpy.h b/lib/librte_eal/common/include/arch/arm/rte_memcpy.h index d9f5bf1..1d562c3 100644 --- a/lib/librte_eal/common/include/arch/arm/rte_memcpy.h +++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy.h @@ -33,6 +33,10 @@ #ifndef _RTE_MEMCPY_ARM_H_ #define _RTE_MEMCPY_ARM_H_ +#ifdef RTE_ARCH_64 +#include +#else #include +#endif #endif /* _RTE_MEMCPY_ARM_H_ */ diff --git a/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h new file mode 100644 index 0000000..917cdc1 --- /dev/null +++ b/lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h @@ -0,0 +1,93 @@ +/* + * BSD LICENSE + * + * Copyright (C) Cavium networks Ltd. 2015. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Cavium networks nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef _RTE_MEMCPY_ARM64_H_ +#define _RTE_MEMCPY_ARM64_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#include "generic/rte_memcpy.h" + +static inline void +rte_mov16(uint8_t *dst, const uint8_t *src) +{ + memcpy(dst, src, 16); +} + +static inline void +rte_mov32(uint8_t *dst, const uint8_t *src) +{ + memcpy(dst, src, 32); +} + +static inline void +rte_mov48(uint8_t *dst, const uint8_t *src) +{ + memcpy(dst, src, 48); +} + +static inline void +rte_mov64(uint8_t *dst, const uint8_t *src) +{ + memcpy(dst, src, 64); +} + +static inline void +rte_mov128(uint8_t *dst, const uint8_t *src) +{ + memcpy(dst, src, 128); +} + +static inline void +rte_mov256(uint8_t *dst, const uint8_t *src) +{ + memcpy(dst, src, 256); +} + +#define rte_memcpy(d, s, n) memcpy((d), (s), (n)) + +static inline void * +rte_memcpy_func(void *dst, const void *src, size_t n) +{ + return memcpy(dst, src, n); +} + +#ifdef __cplusplus +} +#endif + +#endif /* _RTE_MEMCPY_ARM_64_H_ */