| 355 | } |
| 356 | |
| 357 | int |
| 358 | ionic_q_init(struct ionic_queue *q, uint32_t index, uint16_t num_descs) |
| 359 | { |
| 360 | uint32_t ring_size; |
| 361 | |
| 362 | if (!rte_is_power_of_2(num_descs)) |
| 363 | return -EINVAL; |
| 364 | |
| 365 | ring_size = rte_log2_u32(num_descs); |
| 366 | if (ring_size < 2 || ring_size > 16) |
| 367 | return -EINVAL; |
| 368 | |
| 369 | q->index = index; |
| 370 | q->num_descs = num_descs; |
| 371 | q->size_mask = num_descs - 1; |
| 372 | q->head_idx = 0; |
| 373 | q->tail_idx = 0; |
| 374 | |
| 375 | return 0; |
| 376 | } |
| 377 | |
| 378 | void |
| 379 | ionic_q_map(struct ionic_queue *q, void *base, rte_iova_t base_pa) |
no test coverage detected