6b5beb041de53cda6abcb05ee9732f8c4c82af74
[dpdk.git] / examples / l2fwd-event / l2fwd_event.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2019 Marvell International Ltd.
3  */
4
5 #ifndef __L2FWD_EVENT_H__
6 #define __L2FWD_EVENT_H__
7
8 #include <rte_common.h>
9 #include <rte_event_eth_rx_adapter.h>
10 #include <rte_event_eth_tx_adapter.h>
11 #include <rte_mbuf.h>
12 #include <rte_spinlock.h>
13
14 #include "l2fwd_common.h"
15
16 typedef uint32_t (*event_device_setup_cb)(struct l2fwd_resources *rsrc);
17
18 struct event_queues {
19         uint8_t nb_queues;
20 };
21
22 struct event_ports {
23         uint8_t nb_ports;
24 };
25
26 struct event_setup_ops {
27         event_device_setup_cb event_device_setup;
28 };
29
30 struct l2fwd_event_resources {
31         uint8_t tx_mode_q;
32         uint8_t has_burst;
33         uint8_t event_d_id;
34         uint8_t disable_implicit_release;
35         struct event_ports evp;
36         struct event_queues evq;
37         struct event_setup_ops ops;
38 };
39
40 void l2fwd_event_resource_setup(struct l2fwd_resources *rsrc);
41 void l2fwd_event_set_generic_ops(struct event_setup_ops *ops);
42 void l2fwd_event_set_internal_port_ops(struct event_setup_ops *ops);
43
44 #endif /* __L2FWD_EVENT_H__ */