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));