eal: move OS common options usage functions

Move common functions between Unix and Windows to eal_common_options.c.

Those functions are getter functions for rte_application_usage_hook.

Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
This commit is contained in:
Tal Shnaiderman 2020-06-29 15:37:33 +03:00 committed by Thomas Monjalon
parent 57a2efb304
commit 2ab745bd8f
5 changed files with 44 additions and 40 deletions

View File

@ -146,6 +146,29 @@ static int master_lcore_parsed;
static int mem_parsed;
static int core_parsed;
/* Allow the application to print its usage message too if set */
static rte_usage_hook_t rte_application_usage_hook;
/* Returns rte_usage_hook_t */
rte_usage_hook_t
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;
/* 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;
}
#ifndef RTE_EXEC_ENV_WINDOWS
static char **eal_args;
static char **eal_app_args;

View File

@ -690,4 +690,13 @@ eal_set_runtime_dir(char *run_dir, size_t size);
struct internal_config *
eal_get_internal_configuration(void);
/**
* Get the current value of the rte_application_usage pointer
*
* @return
* Pointer to the current value of rte_application_usage .
*/
rte_usage_hook_t
eal_get_application_usage_hook(void);
#endif /* _EAL_PRIVATE_H_ */

View File

@ -56,8 +56,6 @@
#define MEMSIZE_IF_NO_HUGE_PAGE (64ULL * 1024ULL * 1024ULL)
/* Allow the application to print its usage message too if set */
static rte_usage_hook_t rte_application_usage_hook = NULL;
/* define fd variable here, because file needs to be kept open for the
* duration of the program, as we hold a write lock on it in the primary proc */
static int mem_cfg_fd = -1;
@ -418,28 +416,17 @@ rte_config_init(void)
static void
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) {
printf("===== Application Usage =====\n\n");
rte_application_usage_hook(prgname);
(hook)(prgname);
}
}
/* 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;
/* 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;
}
static inline size_t
eal_get_hugepage_mem_size(void)
{

View File

@ -69,9 +69,6 @@
#define KERNEL_IOMMU_GROUPS_PATH "/sys/kernel/iommu_groups"
/* Allow the application to print its usage message too if set */
static rte_usage_hook_t rte_application_usage_hook = NULL;
/* define fd variable here, because file needs to be kept open for the
* duration of the program, as we hold a write lock on it in the primary proc */
static int mem_cfg_fd = -1;
@ -532,6 +529,8 @@ eal_hugedirs_unlock(void)
static void
eal_usage(const char *prgname)
{
rte_usage_hook_t hook = eal_get_application_usage_hook();
printf("\nUsage: %s ", prgname);
eal_common_usage();
printf("EAL Linux options:\n"
@ -546,25 +545,12 @@ eal_usage(const char *prgname)
" --"OPT_MATCH_ALLOCATIONS" Free hugepages exactly as allocated\n"
"\n");
/* Allow the application to print its usage message too if hook is set */
if ( rte_application_usage_hook ) {
if (hook) {
printf("===== Application Usage =====\n\n");
rte_application_usage_hook(prgname);
(hook)(prgname);
}
}
/* 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;
/* 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;
}
static int
eal_parse_socket_arg(char *strval, volatile uint64_t *socket_arg)
{

View File

@ -24,9 +24,6 @@
#define MEMSIZE_IF_NO_HUGE_PAGE (64ULL * 1024ULL * 1024ULL)
/* Allow the application to print its usage message too if set */
static rte_usage_hook_t rte_application_usage_hook;
/* define fd variable here, because file needs to be kept open for the
* duration of the program, as we hold a write lock on it in the primary proc
*/
@ -72,14 +69,16 @@ eal_proc_type_detect(void)
static void
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) {
printf("===== Application Usage =====\n\n");
rte_application_usage_hook(prgname);
(hook)(prgname);
}
}