| 223 | } |
| 224 | |
| 225 | struct rte_compressdev * |
| 226 | rte_compressdev_pmd_allocate(const char *name, int socket_id) |
| 227 | { |
| 228 | struct rte_compressdev *compressdev; |
| 229 | uint8_t dev_id; |
| 230 | |
| 231 | if (rte_compressdev_pmd_get_named_dev(name) != NULL) { |
| 232 | COMPRESSDEV_LOG(ERR, |
| 233 | "comp device with name %s already allocated!", name); |
| 234 | return NULL; |
| 235 | } |
| 236 | |
| 237 | dev_id = rte_compressdev_find_free_device_index(); |
| 238 | if (dev_id == RTE_COMPRESS_MAX_DEVS) { |
| 239 | COMPRESSDEV_LOG(ERR, "Reached maximum number of comp devices"); |
| 240 | return NULL; |
| 241 | } |
| 242 | compressdev = rte_compressdev_get_dev(dev_id); |
| 243 | |
| 244 | if (compressdev->data == NULL) { |
| 245 | struct rte_compressdev_data *compressdev_data = |
| 246 | compressdev_globals.data[dev_id]; |
| 247 | |
| 248 | int retval = rte_compressdev_data_alloc(dev_id, |
| 249 | &compressdev_data, socket_id); |
| 250 | |
| 251 | if (retval < 0 || compressdev_data == NULL) |
| 252 | return NULL; |
| 253 | |
| 254 | compressdev->data = compressdev_data; |
| 255 | |
| 256 | strlcpy(compressdev->data->name, name, |
| 257 | RTE_COMPRESSDEV_NAME_MAX_LEN); |
| 258 | |
| 259 | compressdev->data->dev_id = dev_id; |
| 260 | compressdev->data->socket_id = socket_id; |
| 261 | compressdev->data->dev_started = 0; |
| 262 | |
| 263 | compressdev->attached = RTE_COMPRESSDEV_ATTACHED; |
| 264 | |
| 265 | compressdev_globals.nb_devs++; |
| 266 | } |
| 267 | |
| 268 | return compressdev; |
| 269 | } |
| 270 | |
| 271 | int |
| 272 | rte_compressdev_pmd_release_device(struct rte_compressdev *compressdev) |
no test coverage detected