1d30ea906Sjfb8856606 /* SPDX-License-Identifier: BSD-3-Clause
2d30ea906Sjfb8856606 * Copyright(c) 2017 Intel Corporation
3*2d9fd380Sjfb8856606 * Copyright(c) 2019 Arm Limited
42bfe3f2eSlogwang */
52bfe3f2eSlogwang
62bfe3f2eSlogwang #include <sys/queue.h>
72bfe3f2eSlogwang #include <string.h>
82bfe3f2eSlogwang
92bfe3f2eSlogwang #include <rte_tailq.h>
102bfe3f2eSlogwang #include <rte_memzone.h>
112bfe3f2eSlogwang #include <rte_rwlock.h>
122bfe3f2eSlogwang #include <rte_eal_memconfig.h>
132bfe3f2eSlogwang #include "rte_event_ring.h"
142bfe3f2eSlogwang
152bfe3f2eSlogwang int
rte_event_ring_init(struct rte_event_ring * r,const char * name,unsigned int count,unsigned int flags)162bfe3f2eSlogwang rte_event_ring_init(struct rte_event_ring *r, const char *name,
172bfe3f2eSlogwang unsigned int count, unsigned int flags)
182bfe3f2eSlogwang {
192bfe3f2eSlogwang /* compilation-time checks */
202bfe3f2eSlogwang RTE_BUILD_BUG_ON((sizeof(struct rte_event_ring) &
212bfe3f2eSlogwang RTE_CACHE_LINE_MASK) != 0);
222bfe3f2eSlogwang
232bfe3f2eSlogwang /* init the ring structure */
242bfe3f2eSlogwang return rte_ring_init(&r->r, name, count, flags);
252bfe3f2eSlogwang }
262bfe3f2eSlogwang
272bfe3f2eSlogwang /* create the ring */
282bfe3f2eSlogwang struct rte_event_ring *
rte_event_ring_create(const char * name,unsigned int count,int socket_id,unsigned int flags)292bfe3f2eSlogwang rte_event_ring_create(const char *name, unsigned int count, int socket_id,
302bfe3f2eSlogwang unsigned int flags)
312bfe3f2eSlogwang {
32*2d9fd380Sjfb8856606 return (struct rte_event_ring *)rte_ring_create_elem(name,
33*2d9fd380Sjfb8856606 sizeof(struct rte_event),
34*2d9fd380Sjfb8856606 count, socket_id, flags);
352bfe3f2eSlogwang }
362bfe3f2eSlogwang
372bfe3f2eSlogwang
382bfe3f2eSlogwang struct rte_event_ring *
rte_event_ring_lookup(const char * name)392bfe3f2eSlogwang rte_event_ring_lookup(const char *name)
402bfe3f2eSlogwang {
41*2d9fd380Sjfb8856606 return (struct rte_event_ring *)rte_ring_lookup(name);
422bfe3f2eSlogwang }
432bfe3f2eSlogwang
442bfe3f2eSlogwang /* free the ring */
452bfe3f2eSlogwang void
rte_event_ring_free(struct rte_event_ring * r)462bfe3f2eSlogwang rte_event_ring_free(struct rte_event_ring *r)
472bfe3f2eSlogwang {
48*2d9fd380Sjfb8856606 rte_ring_free((struct rte_ring *)r);
492bfe3f2eSlogwang }
50