[v4,16/18] eal: remove rte-option infrastructure

Message ID 20200424124159.45989-17-ciara.power@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series update and simplify telemetry library. |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Power, Ciara April 24, 2020, 12:41 p.m. UTC
  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 <ciara.power@intel.com>
---
 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
  

Patch

diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 62c0855fd3..8dfbd37723 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -1779,5 +1779,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 <getopt.h>
-#include <unistd.h>
-#include <string.h>
-
-#include <rte_eal.h>
-#include <rte_option.h>
-
-#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 <rte_devargs.h>
 #include <rte_version.h>
 #include <rte_vfio.h>
-#include <rte_option.h>
 #include <rte_atomic.h>
 #include <malloc_heap.h>
 #include <rte_telemetry.h>
@@ -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 e9537c91f9..22684308d0 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 bb6d163a88..9ff3b5f834 100644
--- a/lib/librte_eal/linux/eal.c
+++ b/lib/librte_eal/linux/eal.c
@@ -50,7 +50,6 @@ 
 #include <rte_atomic.h>
 #include <malloc_heap.h>
 #include <rte_vfio.h>
-#include <rte_option.h>
 #include <rte_telemetry.h>
 
 #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;