eal: add option usage string

Add a usage string field in rte_option, allowing to display
help to the user and describe which options are currently available.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
This commit is contained in:
Gaetan Rivet 2018-12-20 18:06:42 +01:00 committed by Thomas Monjalon
parent ce6448fa01
commit b8fe14b7cf
5 changed files with 27 additions and 0 deletions

View File

@ -1515,4 +1515,5 @@ eal_common_usage(void)
" --"OPT_NO_HPET" Disable HPET\n"
" --"OPT_NO_SHCONF" No shared config (mmap'd files)\n"
"\n", RTE_MAX_LCORE);
rte_option_usage();
}

View File

@ -374,4 +374,11 @@ rte_option_parse(const char *opt);
void
rte_option_init(void);
/**
* Iterate through the registered options and show the associated
* usage string.
*/
void
rte_option_usage(void);
#endif /* _EAL_PRIVATE_H_ */

View File

@ -35,6 +35,7 @@ typedef int (*rte_option_cb)(void);
struct rte_option {
TAILQ_ENTRY(rte_option) next; /**< Next entry in the list. */
char *opt_str; /**< The option name. */
const char *usage; /**< Option summary string. */
rte_option_cb cb; /**< Function called when option is used. */
int enabled; /**< Set when the option is used. */
};

View File

@ -61,3 +61,20 @@ rte_option_init(void)
option->cb();
}
}
void
rte_option_usage(void)
{
struct rte_option *option;
int opt_count = 0;
TAILQ_FOREACH(option, &rte_option_list, next)
opt_count += 1;
if (opt_count == 0)
return;
printf("EAL dynamic options:\n");
TAILQ_FOREACH(option, &rte_option_list, next)
printf(" --%-*s %s\n", 17, option->opt_str, option->usage);
printf("\n");
}

View File

@ -1821,6 +1821,7 @@ int telemetry_log_level;
static struct rte_option option = {
.opt_str = "telemetry",
.usage = "Enable telemetry backend",
.cb = &rte_telemetry_init,
.enabled = 0
};