summaryrefslogtreecommitdiff
path: root/lib/eventdev/rte_event_ring.c
blob: b965970cf93dd79a0306fff27df855b9a0b237b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* SPDX-License-Identifier: BSD-3-Clause
 * Copyright(c) 2017 Intel Corporation
 * Copyright(c) 2019 Arm Limited
 */


#include "rte_event_ring.h"
#include "eventdev_trace.h"

int
rte_event_ring_init(struct rte_event_ring *r, const char *name,
	unsigned int count, unsigned int flags)
{
	/* compilation-time checks */
	RTE_BUILD_BUG_ON((sizeof(struct rte_event_ring) &
			  RTE_CACHE_LINE_MASK) != 0);

	rte_eventdev_trace_ring_init(r, name, count, flags);

	/* init the ring structure */
	return rte_ring_init(&r->r, name, count, flags);
}

/* create the ring */
struct rte_event_ring *
rte_event_ring_create(const char *name, unsigned int count, int socket_id,
		unsigned int flags)
{
	rte_eventdev_trace_ring_create(name, count, socket_id, flags);

	return (struct rte_event_ring *)rte_ring_create_elem(name,
						sizeof(struct rte_event),
						count, socket_id, flags);
}


struct rte_event_ring *
rte_event_ring_lookup(const char *name)
{
	rte_eventdev_trace_ring_lookup(name);

	return (struct rte_event_ring *)rte_ring_lookup(name);
}

/* free the ring */
void
rte_event_ring_free(struct rte_event_ring *r)
{
	rte_eventdev_trace_ring_free(r->r.name);

	rte_ring_free((struct rte_ring *)r);
}