| 473 | }; |
| 474 | |
| 475 | static int |
| 476 | skeldma_create(const char *name, struct rte_vdev_device *vdev, int lcore_id) |
| 477 | { |
| 478 | struct rte_dma_dev *dev; |
| 479 | struct skeldma_hw *hw; |
| 480 | int socket_id; |
| 481 | |
| 482 | socket_id = (lcore_id < 0) ? rte_socket_id() : |
| 483 | rte_lcore_to_socket_id(lcore_id); |
| 484 | dev = rte_dma_pmd_allocate(name, socket_id, sizeof(struct skeldma_hw)); |
| 485 | if (dev == NULL) { |
| 486 | SKELDMA_LOG(ERR, "Unable to allocate dmadev: %s", name); |
| 487 | return -EINVAL; |
| 488 | } |
| 489 | |
| 490 | dev->device = &vdev->device; |
| 491 | dev->dev_ops = &skeldma_ops; |
| 492 | dev->fp_obj->dev_private = dev->data->dev_private; |
| 493 | dev->fp_obj->copy = skeldma_copy; |
| 494 | dev->fp_obj->submit = skeldma_submit; |
| 495 | dev->fp_obj->completed = skeldma_completed; |
| 496 | dev->fp_obj->completed_status = skeldma_completed_status; |
| 497 | dev->fp_obj->burst_capacity = skeldma_burst_capacity; |
| 498 | |
| 499 | hw = dev->data->dev_private; |
| 500 | hw->lcore_id = lcore_id; |
| 501 | hw->socket_id = socket_id; |
| 502 | |
| 503 | dev->state = RTE_DMA_DEV_READY; |
| 504 | |
| 505 | return dev->data->dev_id; |
| 506 | } |
| 507 | |
| 508 | static int |
| 509 | skeldma_destroy(const char *name) |
no test coverage detected