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

Function rte_rawdev_pmd_allocate

dpdk/lib/rawdev/rte_rawdev.c:501–540  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

499}
500
501struct rte_rawdev *
502rte_rawdev_pmd_allocate(const char *name, size_t dev_priv_size, int socket_id)
503{
504 struct rte_rawdev *rawdev;
505 uint16_t dev_id;
506
507 if (rte_rawdev_pmd_get_named_dev(name) != NULL) {
508 RTE_RDEV_ERR("Raw device with name %s already allocated!", name);
509 return NULL;
510 }
511
512 dev_id = rte_rawdev_find_free_device_index();
513 if (dev_id == RTE_RAWDEV_MAX_DEVS) {
514 RTE_RDEV_ERR("Reached maximum number of raw devices");
515 return NULL;
516 }
517
518 rawdev = &rte_rawdevs[dev_id];
519
520 if (dev_priv_size > 0) {
521 rawdev->dev_private = rte_zmalloc_socket("rawdev private",
522 dev_priv_size,
523 RTE_CACHE_LINE_SIZE,
524 socket_id);
525 if (!rawdev->dev_private) {
526 RTE_RDEV_ERR("Unable to allocate memory for rawdev");
527 return NULL;
528 }
529 }
530
531 rawdev->dev_id = dev_id;
532 rawdev->socket_id = socket_id;
533 rawdev->started = 0;
534 strlcpy(rawdev->name, name, RTE_RAWDEV_NAME_MAX_LEN);
535
536 rawdev->attached = RTE_RAWDEV_ATTACHED;
537 rawdev_globals.nb_devs++;
538
539 return rawdev;
540}
541
542int
543rte_rawdev_pmd_release(struct rte_rawdev *rawdev)

Callers 8

ntb_createFunction · 0.85
cnxk_gpio_probeFunction · 0.85
dpaa2_cmdif_createFunction · 0.85
ifpga_rawdev_createFunction · 0.85
afu_rawdev_createFunction · 0.85
bphy_rawdev_probeFunction · 0.85
skeleton_rawdev_createFunction · 0.85

Calls 4

rte_zmalloc_socketFunction · 0.85
strlcpyFunction · 0.50

Tested by

no test coverage detected