Memory compare is a commonly used C library function on data plane applications. This enables using HW offload (e.g. vector unit) for compare operations.
Signed-off-by: Petri Savolainen <petri.savolai...@nokia.com> --- include/odp/api/std_clib.h | 18 ++++++++++++++++++ platform/linux-generic/include/odp/std_clib.h | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/include/odp/api/std_clib.h b/include/odp/api/std_clib.h index 2119ec4..791b72f 100644 --- a/include/odp/api/std_clib.h +++ b/include/odp/api/std_clib.h @@ -54,6 +54,24 @@ void *odp_memcpy(void *dst, const void *src, size_t num); void *odp_memset(void *ptr, int value, size_t num); /** + * Memcmp + * + * ODP version of C library memcmp function. It compares first 'num' bytes of + * memory blocks pointed by 'ptr1' and 'ptr2'. + * + * @param ptr1 Pointer to a memory block + * @param ptr2 Pointer to a memory block + * @param num Number of bytes to compare + * + * @retval 0 when the contents of memory blocks match + * @retval <0 when the contents of memory blocks do not match, and + * block 'ptr1' is less than block 'ptr2' + * @retval >0 when the contents of memory blocks do not match, and + * block 'ptr1' is greater than block 'ptr2' + */ +int odp_memcmp(const void *ptr1, const void *ptr2, size_t num); + +/** * @} */ diff --git a/platform/linux-generic/include/odp/std_clib.h b/platform/linux-generic/include/odp/std_clib.h index c939c48..11c59be 100644 --- a/platform/linux-generic/include/odp/std_clib.h +++ b/platform/linux-generic/include/odp/std_clib.h @@ -23,6 +23,11 @@ static inline void *odp_memset(void *ptr, int value, size_t num) return memset(ptr, value, num); } +static inline int odp_memcmp(const void *ptr1, const void *ptr2, size_t num) +{ + return memcmp(ptr1, ptr2, num); +} + #ifdef __cplusplus } #endif -- 2.6.3 _______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp