[PATCH 2/3] eal: change rte_fls and rte_bsf to return uint32_t
Thomas Monjalon
thomas at monjalon.net
Wed Oct 5 11:02:45 CEST 2022
08/08/2022 23:21, Tyler Retzlaff:
> From: Tyler Retzlaff <roretzla at microsoft.com>
>
> return fixed width uint32_t to be consistent with what appears to
> be the original authors intent. it doesn't make much sense to return
> signed integers for these functions.
>
> Signed-off-by: Tyler Retzlaff <roretzla at linux.microsoft.com>
> ---
> lib/eal/include/rte_common.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h
> index a96cc2a..bd4184d 100644
> --- a/lib/eal/include/rte_common.h
> +++ b/lib/eal/include/rte_common.h
> @@ -707,7 +707,7 @@ static void __attribute__((destructor(RTE_PRIO(prio)), used)) func(void)
> * @return
> * The last (most-significant) bit set, or 0 if the input is 0.
> */
> -static inline int
> +static inline uint32_t
> rte_fls_u32(uint32_t x)
> {
> return (x == 0) ? 0 : 32 - __builtin_clz(x);
> @@ -724,7 +724,7 @@ static void __attribute__((destructor(RTE_PRIO(prio)), used)) func(void)
> * @return
> * least significant set bit in the input parameter.
> */
> -static inline int
> +static inline uint32_t
> rte_bsf64(uint64_t v)
> {
> return (uint32_t)__builtin_ctzll(v);
> @@ -766,7 +766,7 @@ static void __attribute__((destructor(RTE_PRIO(prio)), used)) func(void)
> * @return
> * The last (most-significant) bit set, or 0 if the input is 0.
> */
> -static inline int
> +static inline uint32_t
> rte_fls_u64(uint64_t x)
> {
> return (x == 0) ? 0 : 64 - __builtin_clzll(x);
>
You forgot the _safe versions:
--- a/lib/eal/include/rte_common.h
+++ b/lib/eal/include/rte_common.h
@@ -660,7 +660,7 @@ rte_bsf32(uint32_t v)
* @return
* Returns 0 if ``v`` was 0, otherwise returns 1.
*/
-static inline int
+static inline uint32_t
rte_bsf32_safe(uint32_t v, uint32_t *pos)
{
if (v == 0)
@@ -739,7 +739,7 @@ rte_bsf64(uint64_t v)
* @return
* Returns 0 if ``v`` was 0, otherwise returns 1.
*/
-static inline int
+static inline uint32_t
rte_bsf64_safe(uint64_t v, uint32_t *pos)
{
if (v == 0)
More information about the dev
mailing list