[dpdk-dev] [PATCH] rte_delay_us can be replaced with user function
Thomas Monjalon
thomas.monjalon at 6wind.com
Tue Sep 13 22:04:38 CEST 2016
Hi,
Sorry for late review.
This patch was in a summer hole :/
First a general comment: please check your patch with
scripts/checkpatches.sh.
In order to ease tracking of this patch, please increment the version
when sending a new one in the same thread:
git send-email -1 -v3 --annotate --to dev at dpdk.org \
--in-reply-to 1469016644-6521-1-git-send-email-jozmarti at cisco.com
More comments below.
2016-07-20 14:10, jozmarti at cisco.com:
> +void rte_delay_us_callback_register(void (*userfunc)(unsigned))
> +{
> + if (userfunc == NULL)
> + rte_delay_us = rte_delay_us_block;
Here you are creating an exception for rte_delay_us_block which is
mapped as a NULL handler.
What will happen if we need to provide more builtin handlers?
I still think that rte_delay_us_block can be exported and initialized
as the default handler. Other opinions are obviously welcome.
> + else
> + rte_delay_us = userfunc;
> +}
> +
> +static void __attribute__((constructor))
> +rte_timer_init(void)
> +{
> + /* set rte_delay_us_block as a delay function */
> + rte_delay_us_callback_register(NULL);
> +}
> diff --git a/lib/librte_eal/common/include/generic/rte_cycles.h b/lib/librte_eal/common/include/generic/rte_cycles.h
> index 8cc21f2..7a45b58 100644
> --- a/lib/librte_eal/common/include/generic/rte_cycles.h
> +++ b/lib/librte_eal/common/include/generic/rte_cycles.h
> @@ -182,13 +182,16 @@ rte_get_timer_hz(void)
> }
>
> /**
> + *
useless newline
> * Wait at least us microseconds.
> + * This function can be replaced with user-defined function using
> + * rte_delay_us_callback_register
I think you can use @see to point to rte_delay_us_callback_register.
> *
> * @param us
> * The number of microseconds to wait.
> */
> void
> -rte_delay_us(unsigned us);
> +(*rte_delay_us)(unsigned us);
>
> /**
> * Wait at least ms milliseconds.
> @@ -202,4 +205,14 @@ rte_delay_ms(unsigned ms)
> rte_delay_us(ms * 1000);
> }
>
> +/**
> + * Replace rte_delay_us with user defined function.
> + *
> + * @param userfunc
> + * User function which replaces rte_delay_us. NULL restores
> + * buildin block delay function.
buildin -> builtin ?
> + */
> +void rte_delay_us_callback_register(void(*userfunc)(unsigned));
More information about the dev
mailing list