* Dequeue several objects from a ring (multi-consumers safe). * * This function uses a "compare and set" instruction to move the * consumer index atomically. * * @param r * A pointer to the ring structure. * @param obj_table * A pointer to a table of void * pointers (objects) that will be filled. * @param n * The number of objects to dequeue from the ring to the obj_table. * @para
| 357 | * The number of objects dequeued, either 0 or n |
| 358 | */ |
| 359 | static __rte_always_inline unsigned int |
| 360 | rte_ring_mc_dequeue_bulk(struct rte_ring *r, void **obj_table, |
| 361 | unsigned int n, unsigned int *available) |
| 362 | { |
| 363 | return rte_ring_mc_dequeue_bulk_elem(r, obj_table, sizeof(void *), |
| 364 | n, available); |
| 365 | } |
| 366 | |
| 367 | /** |
| 368 | * Dequeue several objects from a ring (NOT multi-consumers safe). |