xref: /dpdk/lib/eventdev/rte_event_ring.c (revision 7f2d9df639b69042883f6428b7db72b837e9c9ac)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017 Intel Corporation
3  * Copyright(c) 2019 Arm Limited
4  */
5 
6 
7 #include "rte_event_ring.h"
8 #include "eventdev_trace.h"
9 
10 int
rte_event_ring_init(struct rte_event_ring * r,const char * name,unsigned int count,unsigned int flags)11 rte_event_ring_init(struct rte_event_ring *r, const char *name,
12 	unsigned int count, unsigned int flags)
13 {
14 	/* compilation-time checks */
15 	RTE_BUILD_BUG_ON((sizeof(struct rte_event_ring) &
16 			  RTE_CACHE_LINE_MASK) != 0);
17 
18 	rte_eventdev_trace_ring_init(r, name, count, flags);
19 
20 	/* init the ring structure */
21 	return rte_ring_init(&r->r, name, count, flags);
22 }
23 
24 /* create the ring */
25 struct rte_event_ring *
rte_event_ring_create(const char * name,unsigned int count,int socket_id,unsigned int flags)26 rte_event_ring_create(const char *name, unsigned int count, int socket_id,
27 		unsigned int flags)
28 {
29 	rte_eventdev_trace_ring_create(name, count, socket_id, flags);
30 
31 	return (struct rte_event_ring *)rte_ring_create_elem(name,
32 						sizeof(struct rte_event),
33 						count, socket_id, flags);
34 }
35 
36 
37 struct rte_event_ring *
rte_event_ring_lookup(const char * name)38 rte_event_ring_lookup(const char *name)
39 {
40 	rte_eventdev_trace_ring_lookup(name);
41 
42 	return (struct rte_event_ring *)rte_ring_lookup(name);
43 }
44 
45 /* free the ring */
46 void
rte_event_ring_free(struct rte_event_ring * r)47 rte_event_ring_free(struct rte_event_ring *r)
48 {
49 	rte_eventdev_trace_ring_free(r->r.name);
50 
51 	rte_ring_free((struct rte_ring *)r);
52 }
53