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

Function dpaa2_eventdev_create

dpdk/drivers/event/dpaa2/dpaa2_eventdev.c:1088–1151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1086}
1087
1088static int
1089dpaa2_eventdev_create(const char *name, struct rte_vdev_device *vdev)
1090{
1091 struct rte_eventdev *eventdev;
1092 struct dpaa2_eventdev *priv;
1093 struct dpaa2_dpcon_dev *dpcon_dev = NULL;
1094 struct dpaa2_dpci_dev *dpci_dev = NULL;
1095 int ret;
1096
1097 eventdev = rte_event_pmd_vdev_init(name,
1098 sizeof(struct dpaa2_eventdev),
1099 rte_socket_id(), vdev);
1100 if (eventdev == NULL) {
1101 DPAA2_EVENTDEV_ERR("Failed to create Event device %s", name);
1102 goto fail;
1103 }
1104
1105 eventdev->dev_ops = &dpaa2_eventdev_ops;
1106 eventdev->enqueue = dpaa2_eventdev_enqueue;
1107 eventdev->enqueue_burst = dpaa2_eventdev_enqueue_burst;
1108 eventdev->enqueue_new_burst = dpaa2_eventdev_enqueue_burst;
1109 eventdev->enqueue_forward_burst = dpaa2_eventdev_enqueue_burst;
1110 eventdev->dequeue = dpaa2_eventdev_dequeue;
1111 eventdev->dequeue_burst = dpaa2_eventdev_dequeue_burst;
1112 eventdev->txa_enqueue = dpaa2_eventdev_txa_enqueue;
1113 eventdev->txa_enqueue_same_dest = dpaa2_eventdev_txa_enqueue_same_dest;
1114
1115 /* For secondary processes, the primary has done all the work */
1116 if (rte_eal_process_type() != RTE_PROC_PRIMARY)
1117 goto done;
1118
1119 priv = eventdev->data->dev_private;
1120 priv->max_event_queues = 0;
1121
1122 do {
1123 dpcon_dev = rte_dpaa2_alloc_dpcon_dev();
1124 if (!dpcon_dev)
1125 break;
1126 priv->evq_info[priv->max_event_queues].dpcon = dpcon_dev;
1127
1128 dpci_dev = rte_dpaa2_alloc_dpci_dev();
1129 if (!dpci_dev) {
1130 rte_dpaa2_free_dpcon_dev(dpcon_dev);
1131 break;
1132 }
1133 priv->evq_info[priv->max_event_queues].dpci = dpci_dev;
1134
1135 ret = dpaa2_eventdev_setup_dpci(dpci_dev, dpcon_dev);
1136 if (ret) {
1137 DPAA2_EVENTDEV_ERR(
1138 "DPCI setup failed: err(%d)", ret);
1139 return ret;
1140 }
1141 priv->max_event_queues++;
1142 } while (dpcon_dev && dpci_dev);
1143
1144 RTE_LOG(INFO, PMD, "%s eventdev created\n", name);
1145

Callers 1

dpaa2_eventdev_probeFunction · 0.85

Calls 8

rte_event_pmd_vdev_initFunction · 0.85
rte_socket_idFunction · 0.85
rte_eal_process_typeFunction · 0.85
rte_dpaa2_alloc_dpci_devFunction · 0.85
rte_dpaa2_free_dpcon_devFunction · 0.85
event_dev_probing_finishFunction · 0.85

Tested by

no test coverage detected