MCPcopy Create free account
hub / github.com/F-Stack/f-stack / cpfl_parse_devargs

Function cpfl_parse_devargs

dpdk/drivers/net/cpfl/cpfl_ethdev.c:1606–1668  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1604#endif
1605
1606static int
1607cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adapter,
1608 bool first, struct cpfl_devargs *cpfl_args)
1609{
1610 struct rte_devargs *devargs = pci_dev->device.devargs;
1611 struct rte_kvargs *kvlist;
1612 int ret;
1613
1614 if (devargs == NULL)
1615 return 0;
1616
1617 kvlist = rte_kvargs_parse(devargs->args,
1618 first ? cpfl_valid_args_first : cpfl_valid_args_again);
1619 if (kvlist == NULL) {
1620 PMD_INIT_LOG(ERR, "invalid kvargs key");
1621 return -EINVAL;
1622 }
1623
1624 if (rte_kvargs_count(kvlist, CPFL_VPORT) > 1) {
1625 PMD_INIT_LOG(ERR, "devarg vport is duplicated.");
1626 ret = -EINVAL;
1627 goto fail;
1628 }
1629
1630 ret = rte_kvargs_process(kvlist, CPFL_REPRESENTOR, &parse_repr, cpfl_args);
1631
1632 if (ret != 0)
1633 goto fail;
1634
1635 if (!first)
1636 goto finish;
1637
1638 ret = rte_kvargs_process(kvlist, CPFL_VPORT, &parse_vport,
1639 cpfl_args);
1640 if (ret != 0)
1641 goto fail;
1642
1643 ret = rte_kvargs_process(kvlist, CPFL_TX_SINGLE_Q, &parse_bool,
1644 &adapter->base.is_tx_singleq);
1645 if (ret != 0)
1646 goto fail;
1647
1648 ret = rte_kvargs_process(kvlist, CPFL_RX_SINGLE_Q, &parse_bool,
1649 &adapter->base.is_rx_singleq);
1650 if (ret != 0)
1651 goto fail;
1652#ifdef RTE_HAS_JANSSON
1653 if (rte_kvargs_get(kvlist, CPFL_FLOW_PARSER)) {
1654 ret = rte_kvargs_process(kvlist, CPFL_FLOW_PARSER,
1655 &parse_file, cpfl_args->flow_parser);
1656 if (ret) {
1657 PMD_DRV_LOG(ERR, "Failed to parser flow_parser, ret: %d", ret);
1658 goto fail;
1659 }
1660 } else {
1661 cpfl_args->flow_parser[0] = '\0';
1662 }
1663#endif

Callers 2

cpfl_pci_probe_firstFunction · 0.85
cpfl_pci_probe_againFunction · 0.85

Calls 5

rte_kvargs_parseFunction · 0.85
rte_kvargs_countFunction · 0.85
rte_kvargs_processFunction · 0.85
rte_kvargs_getFunction · 0.85
rte_kvargs_freeFunction · 0.85

Tested by

no test coverage detected