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

Function skeleton_rawdev_create

dpdk/drivers/raw/skeleton/skeleton_rawdev.c:573–634  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

571};
572
573static int
574skeleton_rawdev_create(const char *name,
575 struct rte_vdev_device *vdev,
576 int socket_id)
577{
578 int ret = 0, i;
579 struct rte_rawdev *rawdev = NULL;
580 struct skeleton_rawdev *skeldev = NULL;
581
582 if (!name) {
583 SKELETON_PMD_ERR("Invalid name of the device!");
584 ret = -EINVAL;
585 goto cleanup;
586 }
587
588 /* Allocate device structure */
589 rawdev = rte_rawdev_pmd_allocate(name, sizeof(struct skeleton_rawdev),
590 socket_id);
591 if (rawdev == NULL) {
592 SKELETON_PMD_ERR("Unable to allocate rawdevice");
593 ret = -EINVAL;
594 goto cleanup;
595 }
596
597 ret = rawdev->dev_id; /* return the rawdev id of new device */
598
599 rawdev->dev_ops = &skeleton_rawdev_ops;
600 rawdev->device = &vdev->device;
601
602 skeldev = skeleton_rawdev_get_priv(rawdev);
603
604 skeldev->device_id = SKELETON_DEVICE_ID;
605 skeldev->vendor_id = SKELETON_VENDOR_ID;
606 skeldev->capabilities = SKELETON_DEFAULT_CAPA;
607
608 memset(&skeldev->fw, 0, sizeof(struct skeleton_firmware));
609
610 skeldev->fw.firmware_state = SKELETON_FW_READY;
611 skeldev->fw.firmware_version.major = SKELETON_MAJOR_VER;
612 skeldev->fw.firmware_version.minor = SKELETON_MINOR_VER;
613 skeldev->fw.firmware_version.subrel = SKELETON_SUB_VER;
614
615 skeldev->device_state = SKELETON_DEV_STOPPED;
616
617 /* Reset/set to default queue configuration for this device */
618 for (i = 0; i < SKELETON_MAX_QUEUES; i++) {
619 skeldev->queues[i].state = SKELETON_QUEUE_DETACH;
620 skeldev->queues[i].depth = SKELETON_QUEUE_DEF_DEPTH;
621 }
622
623 /* Clear all allocated queue buffers */
624 for (i = 0; i < SKELETON_MAX_QUEUES; i++)
625 clear_queue_bufs(i);
626
627 return ret;
628
629cleanup:
630 if (rawdev)

Callers 1

skeleton_rawdev_probeFunction · 0.85

Calls 5

rte_rawdev_pmd_allocateFunction · 0.85
skeleton_rawdev_get_privFunction · 0.85
memsetFunction · 0.85
clear_queue_bufsFunction · 0.85
rte_rawdev_pmd_releaseFunction · 0.85

Tested by

no test coverage detected