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

Function ifpga_vdev_parse_devargs

dpdk/drivers/raw/ifpga/ifpga_rawdev.c:1721–1776  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1719}
1720
1721static int
1722ifpga_vdev_parse_devargs(struct rte_devargs *devargs,
1723 struct ifpga_vdev_args *args)
1724{
1725 struct rte_kvargs *kvlist;
1726 char *name = NULL;
1727 int port = 0;
1728 int ret = -EINVAL;
1729
1730 if (!devargs || !args)
1731 return ret;
1732
1733 kvlist = rte_kvargs_parse(devargs->args, valid_args);
1734 if (!kvlist) {
1735 IFPGA_RAWDEV_PMD_ERR("error when parsing devargs");
1736 return ret;
1737 }
1738
1739 if (rte_kvargs_count(kvlist, IFPGA_ARG_NAME) == 1) {
1740 if (rte_kvargs_process(kvlist, IFPGA_ARG_NAME,
1741 &ifpga_rawdev_get_string_arg, &name) < 0) {
1742 IFPGA_RAWDEV_PMD_ERR("error to parse %s",
1743 IFPGA_ARG_NAME);
1744 goto end;
1745 } else {
1746 strlcpy(args->bdf, name, sizeof(args->bdf));
1747 rte_free(name);
1748 }
1749 } else {
1750 IFPGA_RAWDEV_PMD_ERR("arg %s is mandatory for ifpga bus",
1751 IFPGA_ARG_NAME);
1752 goto end;
1753 }
1754
1755 if (rte_kvargs_count(kvlist, IFPGA_ARG_PORT) == 1) {
1756 if (rte_kvargs_process(kvlist, IFPGA_ARG_PORT,
1757 ifpga_get_integer32_arg, &port) < 0) {
1758 IFPGA_RAWDEV_PMD_ERR("error to parse %s",
1759 IFPGA_ARG_PORT);
1760 goto end;
1761 } else {
1762 args->port = port;
1763 }
1764 } else {
1765 IFPGA_RAWDEV_PMD_ERR("arg %s is mandatory for ifpga bus",
1766 IFPGA_ARG_PORT);
1767 goto end;
1768 }
1769
1770 ret = 0;
1771
1772end:
1773 rte_kvargs_free(kvlist);
1774
1775 return ret;
1776}
1777
1778static int

Callers 2

ifpga_cfg_probeFunction · 0.85
ifpga_cfg_removeFunction · 0.85

Calls 6

rte_kvargs_parseFunction · 0.85
rte_kvargs_countFunction · 0.85
rte_kvargs_processFunction · 0.85
rte_freeFunction · 0.85
rte_kvargs_freeFunction · 0.85
strlcpyFunction · 0.50

Tested by

no test coverage detected