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

Function dev_add

dpdk/drivers/bus/platform/platform.c:80–115  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78}
79
80static int
81dev_add(const char *dev_name)
82{
83 struct rte_platform_device *pdev, *tmp;
84 char path[PATH_MAX];
85 unsigned long val;
86
87 pdev = calloc(1, sizeof(*pdev));
88 if (pdev == NULL)
89 return -ENOMEM;
90
91 rte_strscpy(pdev->name, dev_name, sizeof(pdev->name));
92 pdev->device.name = pdev->name;
93 pdev->device.devargs = dev_devargs(dev_name);
94 pdev->device.bus = &platform_bus.bus;
95 snprintf(path, sizeof(path), PLATFORM_BUS_DEVICES_PATH "/%s/numa_node", dev_name);
96 pdev->device.numa_node = eal_parse_sysfs_value(path, &val) ? rte_socket_id() : val;
97
98 FOREACH_DEVICE_ON_PLATFORM_BUS(tmp) {
99 if (!strcmp(tmp->name, pdev->name)) {
100 PLATFORM_LOG(INFO, "device %s already added\n", pdev->name);
101
102 if (tmp->device.devargs != pdev->device.devargs)
103 rte_devargs_remove(pdev->device.devargs);
104
105 free(pdev);
106 return -EEXIST;
107 }
108 }
109
110 TAILQ_INSERT_HEAD(&platform_bus.device_list, pdev, next);
111
112 PLATFORM_LOG(INFO, "adding device %s to the list\n", dev_name);
113
114 return 0;
115}
116
117static char *
118dev_kernel_driver_name(const char *dev_name)

Callers 1

platform_bus_scanFunction · 0.85

Calls 9

callocFunction · 0.85
rte_strscpyFunction · 0.85
dev_devargsFunction · 0.85
snprintfFunction · 0.85
eal_parse_sysfs_valueFunction · 0.85
rte_socket_idFunction · 0.85
strcmpFunction · 0.85
rte_devargs_removeFunction · 0.85
freeFunction · 0.50

Tested by

no test coverage detected