X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Finclude%2Frte_string_fns.h;h=8bac8243c905dbf65b2c0f7f65da3151e4cf966a;hb=df3ff6be2b33faea3edf3c112b9bdc5b74d6f684;hp=ecd141b852dd52ed381a3f97dcc2b76de2c0a0dc;hpb=b0236c7cf76128b36b7f1e47d5bbd83e2e3f00de;p=dpdk.git diff --git a/lib/librte_eal/common/include/rte_string_fns.h b/lib/librte_eal/common/include/rte_string_fns.h index ecd141b852..8bac8243c9 100644 --- a/lib/librte_eal/common/include/rte_string_fns.h +++ b/lib/librte_eal/common/include/rte_string_fns.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2010-2014 Intel Corporation + * Copyright(c) 2010-2019 Intel Corporation */ /** @@ -16,6 +16,9 @@ extern "C" { #endif #include +#include + +#include /** * Takes string "string" parameter and splits it at character "delim" @@ -58,23 +61,37 @@ rte_strlcpy(char *dst, const char *src, size_t size) return (size_t)snprintf(dst, size, "%s", src); } +/** + * @internal + * DPDK-specific version of strlcat for systems without + * libc or libbsd copies of the function + */ +static inline size_t +rte_strlcat(char *dst, const char *src, size_t size) +{ + size_t l = strnlen(dst, size); + if (l < size) + return l + rte_strlcpy(&dst[l], src, size - l); + return l + strlen(src); +} + /* pull in a strlcpy function */ -#ifdef RTE_EXEC_ENV_BSDAPP -#include +#ifdef RTE_EXEC_ENV_FREEBSD #ifndef __BSD_VISIBLE /* non-standard functions are hidden */ #define strlcpy(dst, src, size) rte_strlcpy(dst, src, size) +#define strlcat(dst, src, size) rte_strlcat(dst, src, size) #endif - #else /* non-BSD platforms */ #ifdef RTE_USE_LIBBSD #include #else /* no BSD header files, create own */ #define strlcpy(dst, src, size) rte_strlcpy(dst, src, size) +#define strlcat(dst, src, size) rte_strlcat(dst, src, size) #endif /* RTE_USE_LIBBSD */ -#endif /* BSDAPP */ +#endif /* FREEBSD */ /** * Copy string src to buffer dst of size dsize.