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

Function rte_devargs_add

dpdk/lib/eal/common/eal_common_devargs.c:323–357  ·  view source on GitHub ↗

store in allowed list parameter for later parsing */

Source from the content-addressed store, hash-verified

321
322/* store in allowed list parameter for later parsing */
323int
324rte_devargs_add(enum rte_devtype devtype, const char *devargs_str)
325{
326 struct rte_devargs *devargs = NULL;
327 struct rte_bus *bus = NULL;
328 const char *dev = devargs_str;
329
330 /* use calloc instead of rte_zmalloc as it's called early at init */
331 devargs = calloc(1, sizeof(*devargs));
332 if (devargs == NULL)
333 goto fail;
334
335 if (rte_devargs_parse(devargs, dev))
336 goto fail;
337 devargs->type = devtype;
338 bus = devargs->bus;
339 if (devargs->type == RTE_DEVTYPE_BLOCKED)
340 devargs->policy = RTE_DEV_BLOCKED;
341 if (bus->conf.scan_mode == RTE_BUS_SCAN_UNDEFINED) {
342 if (devargs->policy == RTE_DEV_ALLOWED)
343 bus->conf.scan_mode = RTE_BUS_SCAN_ALLOWLIST;
344 else if (devargs->policy == RTE_DEV_BLOCKED)
345 bus->conf.scan_mode = RTE_BUS_SCAN_BLOCKLIST;
346 }
347 TAILQ_INSERT_TAIL(&devargs_list, devargs, next);
348 return 0;
349
350fail:
351 if (devargs) {
352 rte_devargs_reset(devargs);
353 free(devargs);
354 }
355
356 return -1;
357}
358
359int
360rte_devargs_remove(struct rte_devargs *devargs)

Callers 2

eal_option_device_parseFunction · 0.85

Calls 4

callocFunction · 0.85
rte_devargs_parseFunction · 0.85
rte_devargs_resetFunction · 0.85
freeFunction · 0.50

Tested by

no test coverage detected