| 98 | } |
| 99 | |
| 100 | static inline unsigned int |
| 101 | test_ring_enqueue(struct rte_ring *r, void **obj, int esize, unsigned int n, |
| 102 | unsigned int api_type) |
| 103 | { |
| 104 | /* Legacy queue APIs? */ |
| 105 | if (esize == -1) |
| 106 | switch (api_type) { |
| 107 | case (TEST_RING_THREAD_DEF | TEST_RING_ELEM_SINGLE): |
| 108 | return rte_ring_enqueue(r, *obj); |
| 109 | case (TEST_RING_THREAD_SPSC | TEST_RING_ELEM_SINGLE): |
| 110 | return rte_ring_sp_enqueue(r, *obj); |
| 111 | case (TEST_RING_THREAD_MPMC | TEST_RING_ELEM_SINGLE): |
| 112 | return rte_ring_mp_enqueue(r, *obj); |
| 113 | case (TEST_RING_THREAD_DEF | TEST_RING_ELEM_BULK): |
| 114 | return rte_ring_enqueue_bulk(r, obj, n, NULL); |
| 115 | case (TEST_RING_THREAD_SPSC | TEST_RING_ELEM_BULK): |
| 116 | return rte_ring_sp_enqueue_bulk(r, obj, n, NULL); |
| 117 | case (TEST_RING_THREAD_MPMC | TEST_RING_ELEM_BULK): |
| 118 | return rte_ring_mp_enqueue_bulk(r, obj, n, NULL); |
| 119 | case (TEST_RING_THREAD_DEF | TEST_RING_ELEM_BURST): |
| 120 | return rte_ring_enqueue_burst(r, obj, n, NULL); |
| 121 | case (TEST_RING_THREAD_SPSC | TEST_RING_ELEM_BURST): |
| 122 | return rte_ring_sp_enqueue_burst(r, obj, n, NULL); |
| 123 | case (TEST_RING_THREAD_MPMC | TEST_RING_ELEM_BURST): |
| 124 | return rte_ring_mp_enqueue_burst(r, obj, n, NULL); |
| 125 | default: |
| 126 | printf("Invalid API type\n"); |
| 127 | return 0; |
| 128 | } |
| 129 | else |
| 130 | switch (api_type) { |
| 131 | case (TEST_RING_THREAD_DEF | TEST_RING_ELEM_SINGLE): |
| 132 | return rte_ring_enqueue_elem(r, obj, esize); |
| 133 | case (TEST_RING_THREAD_SPSC | TEST_RING_ELEM_SINGLE): |
| 134 | return rte_ring_sp_enqueue_elem(r, obj, esize); |
| 135 | case (TEST_RING_THREAD_MPMC | TEST_RING_ELEM_SINGLE): |
| 136 | return rte_ring_mp_enqueue_elem(r, obj, esize); |
| 137 | case (TEST_RING_THREAD_DEF | TEST_RING_ELEM_BULK): |
| 138 | return rte_ring_enqueue_bulk_elem(r, obj, esize, n, |
| 139 | NULL); |
| 140 | case (TEST_RING_THREAD_SPSC | TEST_RING_ELEM_BULK): |
| 141 | return rte_ring_sp_enqueue_bulk_elem(r, obj, esize, n, |
| 142 | NULL); |
| 143 | case (TEST_RING_THREAD_MPMC | TEST_RING_ELEM_BULK): |
| 144 | return rte_ring_mp_enqueue_bulk_elem(r, obj, esize, n, |
| 145 | NULL); |
| 146 | case (TEST_RING_THREAD_DEF | TEST_RING_ELEM_BURST): |
| 147 | return rte_ring_enqueue_burst_elem(r, obj, esize, n, |
| 148 | NULL); |
| 149 | case (TEST_RING_THREAD_SPSC | TEST_RING_ELEM_BURST): |
| 150 | return rte_ring_sp_enqueue_burst_elem(r, obj, esize, n, |
| 151 | NULL); |
| 152 | case (TEST_RING_THREAD_MPMC | TEST_RING_ELEM_BURST): |
| 153 | return rte_ring_mp_enqueue_burst_elem(r, obj, esize, n, |
| 154 | NULL); |
| 155 | default: |
| 156 | printf("Invalid API type\n"); |
| 157 | return 0; |
no test coverage detected