1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2020 Intel Corporation 3 */ 4 5 #include "test_ring_stress_impl.h" 6 #include <rte_ring_elem.h> 7 8 static inline uint32_t 9 _st_ring_dequeue_bulk(struct rte_ring *r, void **obj, uint32_t n, 10 uint32_t *avail) 11 { 12 uint32_t m; 13 14 m = rte_ring_dequeue_bulk_start(r, obj, n, avail); 15 n = (m == n) ? n : 0; 16 rte_ring_dequeue_finish(r, n); 17 return n; 18 } 19 20 static inline uint32_t 21 _st_ring_enqueue_bulk(struct rte_ring *r, void * const *obj, uint32_t n, 22 uint32_t *free) 23 { 24 uint32_t m; 25 26 m = rte_ring_enqueue_bulk_start(r, n, free); 27 n = (m == n) ? n : 0; 28 rte_ring_enqueue_finish(r, obj, n); 29 return n; 30 } 31 32 static int 33 _st_ring_init(struct rte_ring *r, const char *name, uint32_t num) 34 { 35 return rte_ring_init(r, name, num, 36 RING_F_MP_HTS_ENQ | RING_F_MC_HTS_DEQ); 37 } 38 39 const struct test test_ring_mt_peek_stress = { 40 .name = "MT_PEEK", 41 .nb_case = RTE_DIM(tests), 42 .cases = tests, 43 }; 44