aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolay Nikolaev <n.nikolaev@virtualopensystems.com>2016-03-18 18:23:56 +0000
committerZoltan Kiss <zoltan.kiss@linaro.org>2016-03-18 18:23:56 +0000
commit16fe86ae0d3b3f4011ab24f0666256ee7a7cb802 (patch)
tree3196c12bde1229cd74a0673ab3d67cf93acc2082
parentca6fd4f063ce02945ba2283bc753465524b898a2 (diff)
linux-dpdk: std_lib: dpdk_memcpy definition for arm/arm64v1.7.0.0_DPDK_2.2.0
DPDK for arm/arm64 uses a #define for the rte_memcpy, which is not suitable to get as a function pointer. For those platforms, wrap it in a static function and pass its address as dpdk_memcpy. Signed-off-by: Nikolay Nikolaev <n.nikolaev@virtualopensystems.com> Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org>
-rw-r--r--platform/linux-dpdk/odp_std_clib.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/platform/linux-dpdk/odp_std_clib.c b/platform/linux-dpdk/odp_std_clib.c
index 8838f7870..95424af89 100644
--- a/platform/linux-dpdk/odp_std_clib.c
+++ b/platform/linux-dpdk/odp_std_clib.c
@@ -10,7 +10,16 @@ extern "C" {
#include <rte_memcpy.h>
+#if defined(__arm__) || defined(__aarch64__)
+static void *_rte_memcpy(void *dst, const void *src, size_t n)
+{
+ return rte_memcpy(dst, src, n);
+}
+
+void* (*const dpdk_memcpy)(void*, const void*, size_t) = &_rte_memcpy;
+#else
void* (*const dpdk_memcpy)(void*, const void*, size_t) = &rte_memcpy;
+#endif
#ifdef __cplusplus
}