From patchwork Tue Nov 3 13:09:06 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 8586 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 5712D9219; Tue, 3 Nov 2015 14:10:22 +0100 (CET) Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0099.outbound.protection.outlook.com [65.55.169.99]) by dpdk.org (Postfix) with ESMTP id 6D3569216 for ; Tue, 3 Nov 2015 14:10:20 +0100 (CET) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@caviumnetworks.com; Received: from localhost.caveonetworks.com (111.93.218.67) by BY2PR0701MB1974.namprd07.prod.outlook.com (10.163.155.20) with Microsoft SMTP Server (TLS) id 15.1.312.18; Tue, 3 Nov 2015 13:10:16 +0000 From: Jerin Jacob To: Date: Tue, 3 Nov 2015 18:39:06 +0530 Message-ID: <1446556153-18845-6-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1446556153-18845-5-git-send-email-jerin.jacob@caviumnetworks.com> References: <1446556153-18845-1-git-send-email-jerin.jacob@caviumnetworks.com> <1446556153-18845-2-git-send-email-jerin.jacob@caviumnetworks.com> <1446556153-18845-3-git-send-email-jerin.jacob@caviumnetworks.com> <1446556153-18845-4-git-send-email-jerin.jacob@caviumnetworks.com> <1446556153-18845-5-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MAXPR01CA0048.INDPRD01.PROD.OUTLOOK.COM (25.164.146.148) To BY2PR0701MB1974.namprd07.prod.outlook.com (25.163.155.20) X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB1974; 2:DYPEgLrdtVIr3nr6tGLsJUpa1C7fdBQqhaQ7GnFCT/BNkwqjchbhZc5jdRz9Ezq9mxVizW6IZxLDhQcuEAmrBNYy9DRsW2KBp15Jmg9R+Ac1u3uo3Ly6GEGgFPfjb5buNFnexG9L05ocRdZMT7kK1aUFDnh5R24OwKUlELwKCkQ=; 3:z+ZxEs0nmX2PeYsPebE3URPWs7Wz2RBkc0kNgVUOLS7O3yJ/TFjNlb7Vvz4Dw/n1l2wtPIXMjW5tKp8LzESLAuE2uw0i955P3p3gF5jwadMXar9P6+ENJDkrNojS+ZM55mYPY/lZ2tMFgJYNZwragw==; 25:9DNhDFEJOy09sRervPgEYItVJGaM7A2OFSp4bGzTnWvvQDgmsfpwQcOY1rYZ0CsZj5NVLcJO8kOuhUW0m5gH6U6feHmY/GD09CqNPKPyZjqPMgTk/JeS6I/9b0qmABYC6sMELHkmSG49ehp6IENy6Yg6Pi2Q9WX2ISOmD3o/BeBomQj4U/zx4R0t5CmmQnyk9zD0MovM4ToybNIJHQWzb4+mbifWa9BXWjnIuonAAlMDRtxxv5haOxs4mRkP6q3piiVpOfQg9OLCQ1qPUnxRIg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0701MB1974; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB1974; 20:Nzd1BhhdBYgAFVcguoHTAjv/eY/gGK0OSZAAmf5w7qnbK5Kflt2k6pyhu9wwXbbwzhYB/ynoCNp0lGghLnUWDGF93ZJsJay00s+zf1/jvUfmBeP/zeXj016LLDwQ5IToDGY+xZmJFqU4M8Ft4G8vMtkWsdUfzK9Dnt6A8tYrY4CA6UkdAI4WphtRqs2eORXbduh8ZEGoP3mNVmx0RYeT4UAWySMGDvTn01B+xKuUMsZDkVeequ3Wkv+rLt50BzI5gQqu6GoVdFKCUC6huqQnvj9k9uXZjGOrQbnsCVNmg0fkLie+8lNrXs26S648bqkM/34eccYrGxGjQpZZZ9TCGj2SqI3gALJZPzXS9jzJkIp5jdu4mxzygo5dYhjnDkVSHBpMoPL5tFxwRx7bA4i4PlBAwl1AfbgRhcLy2ThoCQ5qSOGxh218yJLto3Q8Y6HiI4cDgIyFkLI9rMxY4NnyLAoPI9y9uMNlXD+fyEso1gsnVIvN38dY9dv2hiLify67vkP4x4HjkrYG4eWLzBI5tnGF/SHvn09BxuxIYtFDPRE15tjvDHNI3UI9cv2eb1a2k99USSZ65Opb1obgkGb8RBonmk/6AsUrQgSeCRuJR1E= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236414709691187); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(10201501046)(3002001); SRVR:BY2PR0701MB1974; BCL:0; PCL:0; RULEID:; SRVR:BY2PR0701MB1974; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB1974; 4:ki4Y/RCFCh8jV9fmCIT/Lon5FyPxBflqFMEoukRUvXcx+7q5I5iV/HIKU4CivXhPq3w4ECDsIyCs4w0H/UsYoKv7QuAJLLAAgKRxJ2uoEkrRQE7YQqeg7lw/VOIPzgM7+OFklmlc97npTO3n9WXYkmHVTGPm83WeUpfvWS3JfdiwwYRIU2+blZkjkUUQZn1kbA+tAmx0t00zipRhCKj/hzUOLBLtIj3JM2iZFgs5471aZw5Wwt6RSJOxebTAgG8Mz4g3CDPVMEL4F0WhRtlAhi9OuiC/1OW6Kuq/1Asif4xMBjjmbN9rfjZWcAUyfFMSuLPy+ZToeGkQ+1DNvsTxpSLYggQd1irzW82l5cSyR5hEJgc6ffIA1zfKAe7YaHKr X-Forefront-PRVS: 0749DC2CE6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(6069001)(189002)(199003)(81156007)(5001960100002)(50226001)(50986999)(5004730100002)(2950100001)(110136002)(77096005)(107886002)(66066001)(47776003)(189998001)(5007970100001)(42186005)(19580395003)(86362001)(76506005)(87976001)(69596002)(97736004)(50466002)(101416001)(53416004)(48376002)(106356001)(105586002)(19580405001)(36756003)(5008740100001)(76176999)(40100003)(92566002)(4001430100002)(5009440100003)(93886004)(33646002)(122386002)(5003940100001)(229853001)(2351001)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0701MB1974; H:localhost.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; BY2PR0701MB1974; 23:jYun7kGAN91k5QFplltnNqvhBT8+M6poDjeE0CT?= =?us-ascii?Q?UagaoSM6uhwUjM2m0Ojn+jCS38WzSfn50keb4Ba4ef8sU90IhcnPnwmtMk+7?= =?us-ascii?Q?bTfsrIjOpYfRiBYE5Zh0UnHNv/1fqKgS+SLDZSPVP6972flO0CBSlh25pR4T?= =?us-ascii?Q?SP6KFrc2PUw0iPbX6HLigumak0sEx+OgxT6utcVRqP6LRciXSK7woNT9ZEnr?= =?us-ascii?Q?TTDlXClo/JebZGHn63VGVvmJGFaePqWIChCAcx5hf6zywAjjTfwudpnLCa6H?= =?us-ascii?Q?bGR+SXajl6C9Eq4JlAwQiR8xzThiTqOLSLJUs2mykgazsaXBDWZ4b67Dhsuw?= =?us-ascii?Q?icbV3QA82XOmU5SbfdcuIwlFuEB9H6PoPZz8gcbDc/ymOHjTEuKeVexP8qtz?= =?us-ascii?Q?eLpRggO2fzUBe0Ye1zVZiy8XGleMfeuOaHFB0lB+oNaxAWHpWS2I5gdkk7kw?= =?us-ascii?Q?QIA1D2nHZmoemaH01IuguX3m/41I6RgLCp1W0Vcp12gXyflM7Rh07DvozBst?= =?us-ascii?Q?F9fwQbOg0rIpjBUwe0UjGE/9kh6/U2B3IdVjIQYa8YGcyh4greS6064bHMc+?= =?us-ascii?Q?dBWhd29u9DtKqrAAgENQCAQGVXJeHoNhAGBYBEoQukVOWwdbsc2Ox7WVsyh7?= =?us-ascii?Q?4ItZu+CP+dbeLRdOMpfGKA7+2jIuSlFnhSSDeZvvBsFajK5xTEiFfQtWHAKX?= =?us-ascii?Q?JLo0Tr873st3DFK4d8E8+smtNvxRWoUTOhfGnJCAhD2QhXe/vlbrbMgY+DME?= =?us-ascii?Q?HEp+hjtMF8X7fnuI880mmnYrGRb56t6TKuYR7JIt/csUJG3bUCzecCc0VXX3?= =?us-ascii?Q?3w7OxOC5PgSLat8ehle4TEpBpLzPSkFZPIZKfIb6C8b3MGdF1pMCvKt2r7Jb?= =?us-ascii?Q?BOPQKn6aX+QSLWZGYn/NDyRPx0X3sajtpK2skIaLhP62F24gx6yuizkxX+Ou?= =?us-ascii?Q?kziZ8lD0pMdHQjvJ3rjMmDb7BDjKEHVsdyKIdiVxs2TTeXHwq+5Pdcxj10H1?= =?us-ascii?Q?Nnvb6hGXCnT18WmzkloYpdtU7mU9RqVGfdXALGSGr2y3UAWrGm3GZ9KE9uLZ?= =?us-ascii?Q?CquYvKKGB65bvSJz/eMLOww0MPiCELHteH8g6HBJxq0XIu0Xj2q+rPyjBvBx?= =?us-ascii?Q?1M2tzGZ15JBWsJToZZVDVQCi6o071Z+Shj7k8Fd/OGA7QhtHvC6pp4giTYrV?= =?us-ascii?Q?8yQcj6tJcFZ5oTBiOHuU71dCHGmZmPkVpCuMT?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0701MB1974; 5:qgtpQswGuAbS4AuJDUrTIc1+A5j2Go5+h/gblKWsPf3BjJjZLQKTQPni1dMu57+n7nsEC41ZlNg5NWvqJc2vL2a83mXSD3AERR1oJvT1lo+TyALc3Eiipzj/U9DqHycjzNdk3aNpICaH6FTAClcf7g==; 24:xZ6S9/eAKNbYryBTQqb/TNVTiE9keVZVF3MhoBD5hKu8KvPgAZXLqClIL68nZ4RA42hhxD2Z0AloQ8cDLKHlgEHHHBPBhr6k1wi74oFUYs8=; 20:Yi4kuh6CQSL0rTBlwJ3+OR+reuQ4VBXu6bFlRWStz/r84mDGwhp60G7fenO6Iho7sdk6DauNSD39jDwAXdnPPw== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2015 13:10:16.7052 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0701MB1974 Subject: [dpdk-dev] [PATCH 05/12] eal: arm64: rte_memcpy_64.h version based 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_ */