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

Function edma_init_service

dpdk/lib/eventdev/rte_event_dma_adapter.c:860–907  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

858}
859
860static int
861edma_init_service(struct event_dma_adapter *adapter, uint8_t id)
862{
863 struct rte_event_dma_adapter_conf adapter_conf;
864 struct rte_service_spec service;
865 uint32_t impl_rel;
866 int ret;
867
868 if (adapter->service_initialized)
869 return 0;
870
871 memset(&service, 0, sizeof(service));
872 snprintf(service.name, DMA_ADAPTER_NAME_LEN, "rte_event_dma_adapter_%d", id);
873 service.socket_id = adapter->socket_id;
874 service.callback = edma_service_func;
875 service.callback_userdata = adapter;
876
877 /* Service function handles locking for queue add/del updates */
878 service.capabilities = RTE_SERVICE_CAP_MT_SAFE;
879 ret = rte_service_component_register(&service, &adapter->service_id);
880 if (ret) {
881 RTE_EDEV_LOG_ERR("failed to register service %s err = %" PRId32, service.name, ret);
882 return ret;
883 }
884
885 ret = adapter->conf_cb(id, adapter->eventdev_id, &adapter_conf, adapter->conf_arg);
886 if (ret) {
887 RTE_EDEV_LOG_ERR("configuration callback failed err = %" PRId32, ret);
888 return ret;
889 }
890
891 adapter->max_nb = adapter_conf.max_nb;
892 adapter->event_port_id = adapter_conf.event_port_id;
893
894 if (rte_event_port_attr_get(adapter->eventdev_id, adapter->event_port_id,
895 RTE_EVENT_PORT_ATTR_IMPLICIT_RELEASE_DISABLE, &impl_rel)) {
896 RTE_EDEV_LOG_ERR("Failed to get port info for eventdev %" PRId32,
897 adapter->eventdev_id);
898 edma_circular_buffer_free(&adapter->ebuf);
899 rte_free(adapter);
900 return -EINVAL;
901 }
902
903 adapter->implicit_release_disabled = (uint8_t)impl_rel;
904 adapter->service_initialized = 1;
905
906 return ret;
907}
908
909static void
910edma_update_vchanq_info(struct event_dma_adapter *adapter, struct dma_device_info *dev_info,

Callers 1

Calls 6

memsetFunction · 0.85
snprintfFunction · 0.85
rte_event_port_attr_getFunction · 0.85
rte_freeFunction · 0.85

Tested by

no test coverage detected