[dpdk-dev,1/2] eal: refactor plugin list append from eal_parse_args() to a helper function
Commit Message
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
---
lib/librte_eal/linuxapp/eal/eal.c | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
@@ -530,6 +530,24 @@ eal_log_level_parse(int argc, char **argv)
optind = 0; /* reset getopt lib */
}
+static int
+eal_add_solib(const char *path)
+{
+ struct shared_driver *solib;
+
+ solib = malloc(sizeof(*solib));
+ if (solib == NULL) {
+ RTE_LOG(ERR, EAL, "malloc(solib) failed\n");
+ return -1;
+ }
+ memset(solib, 0, sizeof(*solib));
+ strncpy(solib->name, path, PATH_MAX-1);
+ solib->name[PATH_MAX-1] = 0;
+ TAILQ_INSERT_TAIL(&solib_list, solib, next);
+
+ return 0;
+}
+
/* Parse the argument given in the command line of the application */
static int
eal_parse_args(int argc, char **argv)
@@ -538,7 +556,6 @@ eal_parse_args(int argc, char **argv)
char **argvopt;
int option_index;
char *prgname = argv[0];
- struct shared_driver *solib;
argvopt = argv;
@@ -570,15 +587,8 @@ eal_parse_args(int argc, char **argv)
/* force loading of external driver */
case 'd':
- solib = malloc(sizeof(*solib));
- if (solib == NULL) {
- RTE_LOG(ERR, EAL, "malloc(solib) failed\n");
+ if (eal_add_solib(optarg) == -1)
return -1;
- }
- memset(solib, 0, sizeof(*solib));
- strncpy(solib->name, optarg, PATH_MAX-1);
- solib->name[PATH_MAX-1] = 0;
- TAILQ_INSERT_TAIL(&solib_list, solib, next);
break;
/* long options */