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 <bruce.richardson@intel.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
This commit is contained in:
parent
7b00a204bb
commit
950d15163a
@ -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)
|
||||
{
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user