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

Function eca_init_service

dpdk/lib/eventdev/rte_event_crypto_adapter.c:905–969  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

903}
904
905static int
906eca_init_service(struct event_crypto_adapter *adapter, uint8_t id)
907{
908 struct rte_event_crypto_adapter_conf adapter_conf;
909 struct rte_service_spec service;
910 int ret;
911 uint32_t impl_rel;
912
913 if (adapter->service_inited)
914 return 0;
915
916 memset(&service, 0, sizeof(service));
917 snprintf(service.name, CRYPTO_ADAPTER_NAME_LEN,
918 "rte_event_crypto_adapter_%d", id);
919 service.socket_id = adapter->socket_id;
920 service.callback = eca_service_func;
921 service.callback_userdata = adapter;
922 /* Service function handles locking for queue add/del updates */
923 service.capabilities = RTE_SERVICE_CAP_MT_SAFE;
924 ret = rte_service_component_register(&service, &adapter->service_id);
925 if (ret) {
926 RTE_EDEV_LOG_ERR("failed to register service %s err = %" PRId32,
927 service.name, ret);
928 return ret;
929 }
930
931 ret = adapter->conf_cb(id, adapter->eventdev_id,
932 &adapter_conf, adapter->conf_arg);
933 if (ret) {
934 RTE_EDEV_LOG_ERR("configuration callback failed err = %" PRId32,
935 ret);
936 return ret;
937 }
938
939 adapter->max_nb = adapter_conf.max_nb;
940 adapter->event_port_id = adapter_conf.event_port_id;
941
942 if (rte_event_port_attr_get(adapter->eventdev_id,
943 adapter->event_port_id,
944 RTE_EVENT_PORT_ATTR_IMPLICIT_RELEASE_DISABLE,
945 &impl_rel)) {
946 RTE_EDEV_LOG_ERR("Failed to get port info for eventdev %" PRId32,
947 adapter->eventdev_id);
948 eca_circular_buffer_free(&adapter->ebuf);
949 rte_free(adapter);
950 return -EINVAL;
951 }
952
953 adapter->implicit_release_disabled = (uint8_t)impl_rel;
954
955 /** Register for mbuf dyn field to store/restore
956 * "struct rte_event::impl_opaque"
957 */
958 eca_dynfield_offset = eca_dynfield_register();
959 if (eca_dynfield_offset < 0) {
960 RTE_EDEV_LOG_ERR("Failed to register eca mbuf dyn field");
961 eca_circular_buffer_free(&adapter->ebuf);
962 rte_free(adapter);

Calls 7

memsetFunction · 0.85
snprintfFunction · 0.85
rte_event_port_attr_getFunction · 0.85
eca_circular_buffer_freeFunction · 0.85
rte_freeFunction · 0.85
eca_dynfield_registerFunction · 0.85

Tested by

no test coverage detected