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

Function rte_cryptodev_pmd_allocate

dpdk/lib/cryptodev/rte_cryptodev.c:1053–1110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1051}
1052
1053struct rte_cryptodev *
1054rte_cryptodev_pmd_allocate(const char *name, int socket_id)
1055{
1056 struct rte_cryptodev *cryptodev;
1057 uint8_t dev_id;
1058
1059 if (rte_cryptodev_pmd_get_named_dev(name) != NULL) {
1060 CDEV_LOG_ERR("Crypto device with name %s already "
1061 "allocated!", name);
1062 return NULL;
1063 }
1064
1065 dev_id = rte_cryptodev_find_free_device_index();
1066 if (dev_id == RTE_CRYPTO_MAX_DEVS) {
1067 CDEV_LOG_ERR("Reached maximum number of crypto devices");
1068 return NULL;
1069 }
1070
1071 cryptodev = rte_cryptodev_pmd_get_dev(dev_id);
1072
1073 if (cryptodev->data == NULL) {
1074 struct rte_cryptodev_data **cryptodev_data =
1075 &cryptodev_globals.data[dev_id];
1076
1077 int retval = rte_cryptodev_data_alloc(dev_id, cryptodev_data,
1078 socket_id);
1079
1080 if (retval < 0 || *cryptodev_data == NULL)
1081 return NULL;
1082
1083 cryptodev->data = *cryptodev_data;
1084
1085 if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
1086 strlcpy(cryptodev->data->name, name,
1087 RTE_CRYPTODEV_NAME_MAX_LEN);
1088
1089 cryptodev->data->dev_id = dev_id;
1090 cryptodev->data->socket_id = socket_id;
1091 cryptodev->data->dev_started = 0;
1092 CDEV_LOG_DEBUG("PRIMARY:init data");
1093 }
1094
1095 CDEV_LOG_DEBUG("Data for %s: dev_id %d, socket %d, started %d",
1096 cryptodev->data->name,
1097 cryptodev->data->dev_id,
1098 cryptodev->data->socket_id,
1099 cryptodev->data->dev_started);
1100
1101 /* init user callbacks */
1102 TAILQ_INIT(&(cryptodev->link_intr_cbs));
1103
1104 cryptodev->attached = RTE_CRYPTODEV_ATTACHED;
1105
1106 cryptodev_globals.nb_devs++;
1107 }
1108
1109 return cryptodev;
1110}

Callers 4

rte_cryptodev_pmd_createFunction · 0.85
otx_cpt_pci_probeFunction · 0.85
cryptodev_dpaa_sec_probeFunction · 0.85

Calls 6

rte_cryptodev_data_allocFunction · 0.85
rte_eal_process_typeFunction · 0.85
strlcpyFunction · 0.50

Tested by

no test coverage detected