[dpdk-dev] [PATCH v9 02/10] eal: move OS common options functions

Thomas Monjalon thomas at monjalon.net
Thu Jun 25 16:29:58 CEST 2020


24/06/2020 10:28, talshn at mellanox.com:
> From: Tal Shnaiderman <talshn at mellanox.com>
> 
> Move common functions between Unix and Windows to eal_common_options.c.
> 
> Those functions are getter functions for rte_application_usage_hook.
[...]
> +/* Return a pointer to rte_usage_hook_t */
> +rte_usage_hook_t *

Why not returning rte_usage_hook_t directly?

> +eal_get_application_usage_hook(void)
> +{
> +	return &rte_application_usage_hook;
> +}

[...]
> +/* Set a per-application usage message */
> +rte_usage_hook_t
> +rte_set_application_usage_hook(rte_usage_hook_t usage_func)
> +{
> +	rte_usage_hook_t	old_func;

A single space is enough to declare the variable.

> +
> +	/* Will be NULL on the first call to denote the last usage routine. */
> +	old_func = rte_application_usage_hook;
> +	rte_application_usage_hook = usage_func;
> +
> +	return old_func;
> +}

[...]
>  eal_usage(const char *prgname)
>  {
> +	rte_usage_hook_t *hook = eal_get_application_usage_hook();
> +
>  	printf("\nUsage: %s ", prgname);
>  	eal_common_usage();
>  	/* Allow the application to print its usage message too if hook is set */
> -	if ( rte_application_usage_hook ) {
> +	if (*hook) {

Explicit test is better: if (*hook != NULL)
It could even be if (hook != NULL && *hook != NULL),
which asks the question why returning the pointer of the pointer?

>  		printf("===== Application Usage =====\n\n");
> -		rte_application_usage_hook(prgname);
> +		(*hook)(prgname);
>  	}
>  }





More information about the dev mailing list