From e122b0bff97732f1186054bf66402cca9064d439 Mon Sep 17 00:00:00 2001 From: Ciara Power Date: Thu, 30 Apr 2020 17:01:35 +0100 Subject: [PATCH] eal: remove option registration infrastructure As Telemetry no longer uses rte_option, and was the only user of this infrastructure, it can now be removed. Signed-off-by: Ciara Power Reviewed-by: Keith Wiles --- lib/librte_eal/common/eal_common_options.c | 1 - lib/librte_eal/common/eal_private.h | 28 ------- lib/librte_eal/common/meson.build | 2 - lib/librte_eal/common/rte_option.c | 95 ---------------------- lib/librte_eal/freebsd/Makefile | 1 - lib/librte_eal/freebsd/eal.c | 14 +--- lib/librte_eal/include/meson.build | 1 - lib/librte_eal/include/rte_option.h | 72 ---------------- lib/librte_eal/linux/Makefile | 1 - lib/librte_eal/linux/eal.c | 14 +--- lib/librte_eal/rte_eal_version.map | 1 - 11 files changed, 2 insertions(+), 228 deletions(-) delete mode 100644 lib/librte_eal/common/rte_option.c delete mode 100644 lib/librte_eal/include/rte_option.h diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index f44d147b4e..baaf8767eb 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -1785,5 +1785,4 @@ 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(); } diff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h index ecf827914f..869ce183ad 100644 --- a/lib/librte_eal/common/eal_private.h +++ b/lib/librte_eal/common/eal_private.h @@ -409,34 +409,6 @@ dev_sigbus_handler_register(void); int dev_sigbus_handler_unregister(void); -/** - * Check if the option is registered. - * - * @param option - * The option to be parsed. - * - * @return - * 0 on success - * @return - * -1 on fail - */ -int -rte_option_parse(const char *opt); - -/** - * Iterate through the registered options and execute the associated - * callback if enabled. - */ -void -rte_option_init(void); - -/** - * Iterate through the registered options and show the associated - * usage string. - */ -void -rte_option_usage(void); - /** * Get OS-specific EAL mapping base address. */ diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build index 155da29b4e..55aaeb18e1 100644 --- a/lib/librte_eal/common/meson.build +++ b/lib/librte_eal/common/meson.build @@ -14,7 +14,6 @@ if is_windows 'eal_common_log.c', 'eal_common_options.c', 'eal_common_thread.c', - 'rte_option.c', ) subdir_done() endif @@ -53,7 +52,6 @@ sources += files( 'malloc_mp.c', 'rte_keepalive.c', 'rte_malloc.c', - 'rte_option.c', 'rte_random.c', 'rte_reciprocal.c', 'rte_service.c', diff --git a/lib/librte_eal/common/rte_option.c b/lib/librte_eal/common/rte_option.c deleted file mode 100644 index 6f8bd6e64c..0000000000 --- a/lib/librte_eal/common/rte_option.c +++ /dev/null @@ -1,95 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2018 Intel Corporation. - */ - -#include -#include -#include - -#include -#include - -#include "eal_private.h" -#include "eal_internal_cfg.h" /* Necessary for eal_options.h */ -#include "eal_options.h" - -TAILQ_HEAD(rte_option_list, rte_option); - -struct rte_option_list rte_option_list = - TAILQ_HEAD_INITIALIZER(rte_option_list); - -int -rte_option_parse(const char *opt) -{ - struct rte_option *option; - - if (strlen(opt) <= 2 || - strncmp(opt, "--", 2)) - return -1; - - /* Check if the option is registered */ - TAILQ_FOREACH(option, &rte_option_list, next) { - if (strcmp(&opt[2], option->name) == 0) { - option->enabled = 1; - return 0; - } - } - - return -1; -} - -int -rte_option_register(struct rte_option *opt) -{ - struct rte_option *option; - const struct option *gopt; - - gopt = &eal_long_options[0]; - while (gopt->name != NULL) { - if (strcmp(gopt->name, opt->name) == 0) { - RTE_LOG(ERR, EAL, "Option %s is already a common EAL option.\n", - opt->name); - return -1; - } - gopt++; - } - - TAILQ_FOREACH(option, &rte_option_list, next) { - if (strcmp(opt->name, option->name) == 0) { - RTE_LOG(ERR, EAL, "Option %s has already been registered.\n", - opt->name); - return -1; - } - } - - TAILQ_INSERT_HEAD(&rte_option_list, opt, next); - return 0; -} - -void -rte_option_init(void) -{ - struct rte_option *option; - - TAILQ_FOREACH(option, &rte_option_list, next) { - if (option->enabled) - 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->name, option->usage); - printf("\n"); -} diff --git a/lib/librte_eal/freebsd/Makefile b/lib/librte_eal/freebsd/Makefile index e95728e740..af95386d48 100644 --- a/lib/librte_eal/freebsd/Makefile +++ b/lib/librte_eal/freebsd/Makefile @@ -70,7 +70,6 @@ SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_elem.c SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_heap.c SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += malloc_mp.c SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_keepalive.c -SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_option.c SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_service.c SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_random.c SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += rte_reciprocal.c diff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c index bc86dccc27..2379a94e8c 100644 --- a/lib/librte_eal/freebsd/eal.c +++ b/lib/librte_eal/freebsd/eal.c @@ -41,7 +41,6 @@ #include #include #include -#include #include #include #include @@ -537,20 +536,12 @@ eal_parse_args(int argc, char **argv) argvopt = argv; optind = 1; optreset = 1; - opterr = 0; while ((opt = getopt_long(argc, argvopt, eal_short_options, eal_long_options, &option_index)) != EOF) { - /* - * getopt didn't recognise the option, lets parse the - * registered options to see if the flag is valid - */ + /* getopt didn't recognise the option */ if (opt == '?') { - ret = rte_option_parse(argv[optind-1]); - if (ret == 0) - continue; - eal_usage(prgname); ret = -1; goto out; @@ -972,9 +963,6 @@ rte_eal_init(int argc, char **argv) eal_mcfg_complete(); - /* Call each registered callback, if enabled */ - rte_option_init(); - return fctret; } diff --git a/lib/librte_eal/include/meson.build b/lib/librte_eal/include/meson.build index 13315bfcec..bc73ec2c5c 100644 --- a/lib/librte_eal/include/meson.build +++ b/lib/librte_eal/include/meson.build @@ -30,7 +30,6 @@ headers += files( 'rte_malloc.h', 'rte_memory.h', 'rte_memzone.h', - 'rte_option.h', 'rte_pci_dev_feature_defs.h', 'rte_pci_dev_features.h', 'rte_per_lcore.h', diff --git a/lib/librte_eal/include/rte_option.h b/lib/librte_eal/include/rte_option.h deleted file mode 100644 index 7ad65a4eb4..0000000000 --- a/lib/librte_eal/include/rte_option.h +++ /dev/null @@ -1,72 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2018 Intel Corporation. - */ - -#ifndef __INCLUDE_RTE_OPTION_H__ -#define __INCLUDE_RTE_OPTION_H__ - -/** - * @file - * - * This API offers the ability to register options to the EAL command line and - * map those options to functions that will be executed at the end of EAL - * initialization. These options will be available as part of the EAL command - * line of applications and are dynamically managed. - * - * This is used primarily by DPDK libraries offering command line options. - * Currently, this API is limited to registering options without argument. - * - * The register API can be used to resolve circular dependency issues - * between EAL and the library. The library uses EAL, but is also initialized - * by EAL. Hence, EAL depends on the init function of the library. The API - * introduced in rte_option allows us to register the library init with EAL - * (passing a function pointer) and avoid the circular dependency. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef int (*rte_option_cb)(void); - -/** - * Structure describing an EAL command line option dynamically registered. - * - * Common EAL options are mostly statically defined. - * Some libraries need additional options to be dynamically added. - * This structure describes such options. - */ -struct rte_option { - TAILQ_ENTRY(rte_option) next; /**< Next entry in the list. */ - const char *name; /**< 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. */ -}; - -/** - * @warning - * @b EXPERIMENTAL: this API may change without prior notice - * - * Register an option to the EAL command line. - * When recognized, the associated function will be executed at the end of EAL - * initialization. - * - * The associated structure must be available the whole time this option is - * registered (i.e. not stack memory). - * - * @param opt - * Structure describing the option to parse. - * - * @return - * 0 on success, <0 otherwise. - */ -__rte_experimental -int -rte_option_register(struct rte_option *opt); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/librte_eal/linux/Makefile b/lib/librte_eal/linux/Makefile index be57a6d076..48cc34844a 100644 --- a/lib/librte_eal/linux/Makefile +++ b/lib/librte_eal/linux/Makefile @@ -77,7 +77,6 @@ SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_elem.c SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_heap.c SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += malloc_mp.c SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_keepalive.c -SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_option.c SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_service.c SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_random.c SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += rte_reciprocal.c diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c index e4086c75a9..c30ed57f07 100644 --- a/lib/librte_eal/linux/eal.c +++ b/lib/librte_eal/linux/eal.c @@ -50,7 +50,6 @@ #include #include #include -#include #include #include "eal_private.h" @@ -701,20 +700,12 @@ eal_parse_args(int argc, char **argv) argvopt = argv; optind = 1; - opterr = 0; while ((opt = getopt_long(argc, argvopt, eal_short_options, eal_long_options, &option_index)) != EOF) { - /* - * getopt didn't recognise the option, lets parse the - * registered options to see if the flag is valid - */ + /* getopt didn't recognise the option */ if (opt == '?') { - ret = rte_option_parse(argv[optind-1]); - if (ret == 0) - continue; - eal_usage(prgname); ret = -1; goto out; @@ -1310,9 +1301,6 @@ rte_eal_init(int argc, char **argv) eal_mcfg_complete(); - /* Call each registered callback, if enabled */ - rte_option_init(); - return fctret; } diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map index 6088e7f6c3..d8038749a4 100644 --- a/lib/librte_eal/rte_eal_version.map +++ b/lib/librte_eal/rte_eal_version.map @@ -303,7 +303,6 @@ EXPERIMENTAL { rte_memseg_get_fd_offset; rte_memseg_get_fd_offset_thread_unsafe; rte_memseg_get_fd_thread_unsafe; - rte_option_register; # added in 19.02 rte_extmem_attach; -- 2.20.1