From 950d15163a494faa13a98c7af9ffd131f06c4a2c Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Tue, 16 Dec 2014 11:07:52 +0000 Subject: [PATCH] app/testpmd: remove duplicated function for list parsing There were two static functions called "parse_item_list" in testpmd app. Since one was a superset of the functionality of the other, we can collapse the two calls down into a single one, shared between the two C files. Signed-off-by: Bruce Richardson Acked-by: Pablo de Lara --- app/test-pmd/cmdline.c | 2 +- app/test-pmd/parameters.c | 49 ++------------------------------------- app/test-pmd/testpmd.h | 3 +++ 3 files changed, 6 insertions(+), 48 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 882a5a288f..4618b923a1 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -2224,7 +2224,7 @@ cmdline_parse_inst_t cmd_stop = { /* *** SET CORELIST and PORTLIST CONFIGURATION *** */ -static unsigned int +unsigned int parse_item_list(char* str, const char* item_name, unsigned int max_items, unsigned int *parsed_items, int check_unique_values) { diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index fcb2c997ca..adf3203aeb 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -491,52 +491,6 @@ parse_ringnuma_config(const char *q_arg) return 0; } -static unsigned int -parse_item_list(char* str, unsigned int max_items, unsigned int *parsed_items) -{ - unsigned int nb_item; - unsigned int value; - unsigned int i; - int value_ok; - char c; - - /* - * First parse all items in the list and store their value. - */ - value = 0; - nb_item = 0; - value_ok = 0; - for (i = 0; i < strlen(str); i++) { - c = str[i]; - if ((c >= '0') && (c <= '9')) { - value = (unsigned int) (value * 10 + (c - '0')); - value_ok = 1; - continue; - } - if (c != ',') { - printf("character %c is not a decimal digit\n", c); - return (0); - } - if (! value_ok) { - printf("No valid value before comma\n"); - return (0); - } - if (nb_item < max_items) { - parsed_items[nb_item] = value; - value_ok = 0; - value = 0; - } - nb_item++; - } - - if (nb_item >= max_items) - rte_exit(EXIT_FAILURE, "too many txpkt segments!\n"); - - parsed_items[nb_item++] = value; - - return (nb_item); -} - void launch_args_parse(int argc, char** argv) { @@ -1050,7 +1004,8 @@ launch_args_parse(int argc, char** argv) unsigned seg_lengths[RTE_MAX_SEGS_PER_PKT]; unsigned int nb_segs; - nb_segs = parse_item_list(optarg, RTE_MAX_SEGS_PER_PKT, seg_lengths); + nb_segs = parse_item_list(optarg, "txpkt segments", + RTE_MAX_SEGS_PER_PKT, seg_lengths, 0); if (nb_segs > 0) set_tx_pkt_segments(seg_lengths, nb_segs); else diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index f8b0740e35..8f5e6c7007 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -446,6 +446,9 @@ port_pci_reg_write(struct rte_port *port, uint32_t reg_off, uint32_t reg_v) port_pci_reg_write(&ports[(pt_id)], (reg_off), (reg_value)) /* Prototypes */ +unsigned int parse_item_list(char* str, const char* item_name, + unsigned int max_items, + unsigned int *parsed_items, int check_unique_values); void launch_args_parse(int argc, char** argv); void prompt(void); void nic_stats_display(portid_t port_id); -- 2.20.1