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

Function ifpga_cfg_remove

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

Source from the content-addressed store, hash-verified

1839}
1840
1841static int
1842ifpga_cfg_remove(struct rte_vdev_device *vdev)
1843{
1844 struct rte_rawdev *rawdev = NULL;
1845 struct ifpga_rawdev *ifpga_dev;
1846 struct ifpga_vdev_args args;
1847 struct rte_bus *bus;
1848 char dev_name[RTE_RAWDEV_NAME_MAX_LEN];
1849 const char *vdev_name = NULL;
1850 char *tmp_vdev = NULL;
1851 int i, ret = 0;
1852
1853 vdev_name = rte_vdev_device_name(vdev);
1854 if (!vdev_name)
1855 return -EINVAL;
1856
1857 IFPGA_RAWDEV_PMD_INFO("remove ifpga virtual device %s", vdev_name);
1858
1859 ret = ifpga_vdev_parse_devargs(vdev->device.devargs, &args);
1860 if (ret)
1861 return ret;
1862
1863 memset(dev_name, 0, sizeof(dev_name));
1864 snprintf(dev_name, RTE_RAWDEV_NAME_MAX_LEN, "IFPGA:%s", args.bdf);
1865 rawdev = rte_rawdev_pmd_get_named_dev(dev_name);
1866 if (!rawdev)
1867 return -ENODEV;
1868 ifpga_dev = ifpga_rawdev_get(rawdev);
1869 if (!ifpga_dev)
1870 return -ENODEV;
1871
1872 snprintf(dev_name, RTE_RAWDEV_NAME_MAX_LEN, "%d|%s",
1873 args.port, args.bdf);
1874 bus = rte_bus_find_by_name(RTE_STR(IFPGA_BUS_NAME));
1875 if (bus) {
1876 if (bus->find_device(NULL, cmp_dev_name, dev_name)) {
1877 ret = rte_eal_hotplug_remove(RTE_STR(IFPGA_BUS_NAME),
1878 dev_name);
1879 }
1880 }
1881
1882 for (i = 0; i < IFPGA_MAX_VDEV; i++) {
1883 tmp_vdev = ifpga_dev->vdev_name[i];
1884 if (tmp_vdev && !strcmp(tmp_vdev, vdev_name)) {
1885 free(tmp_vdev);
1886 ifpga_dev->vdev_name[i] = NULL;
1887 break;
1888 }
1889 }
1890
1891 return ret;
1892}
1893
1894static struct rte_vdev_driver ifpga_cfg_driver = {
1895 .probe = ifpga_cfg_probe,

Callers

nothing calls this directly

Calls 10

rte_vdev_device_nameFunction · 0.85
ifpga_vdev_parse_devargsFunction · 0.85
memsetFunction · 0.85
snprintfFunction · 0.85
ifpga_rawdev_getFunction · 0.85
rte_bus_find_by_nameFunction · 0.85
rte_eal_hotplug_removeFunction · 0.85
strcmpFunction · 0.85
freeFunction · 0.50

Tested by

no test coverage detected