xref: /dpdk/lib/port/rte_port_eventdev.h (revision 719834a6849e1daf4a70ff7742bbcc3ae7e25607)
199a2dd95SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause
299a2dd95SBruce Richardson  * Copyright(c) 2019 Intel Corporation
399a2dd95SBruce Richardson  */
499a2dd95SBruce Richardson 
599a2dd95SBruce Richardson #ifndef __INCLUDE_RTE_PORT_EVENTDEV_H__
699a2dd95SBruce Richardson #define __INCLUDE_RTE_PORT_EVENTDEV_H__
799a2dd95SBruce Richardson 
899a2dd95SBruce Richardson /**
999a2dd95SBruce Richardson  * @file
1099a2dd95SBruce Richardson  * RTE Port Eventdev Interface
1199a2dd95SBruce Richardson  *
1299a2dd95SBruce Richardson  * eventdev_reader: input port built on top of pre-initialized eventdev
1399a2dd95SBruce Richardson  * interface
1499a2dd95SBruce Richardson  * eventdev_writer: output port built on top of pre-initialized eventdev
1599a2dd95SBruce Richardson  * interface
163e4c5be9SThomas Monjalon  */
1799a2dd95SBruce Richardson 
1899a2dd95SBruce Richardson #include <stdint.h>
1999a2dd95SBruce Richardson #include <rte_eventdev.h>
2099a2dd95SBruce Richardson 
2199a2dd95SBruce Richardson #include "rte_port.h"
2299a2dd95SBruce Richardson 
23*719834a6SMattias Rönnblom #ifdef __cplusplus
24*719834a6SMattias Rönnblom extern "C" {
25*719834a6SMattias Rönnblom #endif
26*719834a6SMattias Rönnblom 
2799a2dd95SBruce Richardson /** Eventdev_reader port parameters */
2899a2dd95SBruce Richardson struct rte_port_eventdev_reader_params {
2999a2dd95SBruce Richardson 	/** Eventdev Device ID */
3099a2dd95SBruce Richardson 	uint8_t eventdev_id;
3199a2dd95SBruce Richardson 
3299a2dd95SBruce Richardson 	/** Eventdev Port ID */
3399a2dd95SBruce Richardson 	uint8_t port_id;
3499a2dd95SBruce Richardson };
3599a2dd95SBruce Richardson 
3699a2dd95SBruce Richardson /** Eventdev_reader port operations. */
3799a2dd95SBruce Richardson extern struct rte_port_in_ops rte_port_eventdev_reader_ops;
3899a2dd95SBruce Richardson 
3999a2dd95SBruce Richardson /** Eventdev_writer port parameters. */
4099a2dd95SBruce Richardson struct rte_port_eventdev_writer_params {
4199a2dd95SBruce Richardson 	/** Eventdev Device ID. */
4299a2dd95SBruce Richardson 	uint8_t eventdev_id;
4399a2dd95SBruce Richardson 
4499a2dd95SBruce Richardson 	/** Eventdev Port ID. */
4599a2dd95SBruce Richardson 	uint8_t port_id;
4699a2dd95SBruce Richardson 
4799a2dd95SBruce Richardson 	/** Eventdev Queue ID. */
4899a2dd95SBruce Richardson 	uint8_t queue_id;
4999a2dd95SBruce Richardson 
5099a2dd95SBruce Richardson 	/** Burst size to eventdev interface. */
5199a2dd95SBruce Richardson 	uint32_t enq_burst_sz;
5299a2dd95SBruce Richardson 
5399a2dd95SBruce Richardson 	/** Scheduler synchronization type (RTE_SCHED_TYPE_*)*/
5499a2dd95SBruce Richardson 	uint8_t sched_type;
5599a2dd95SBruce Richardson 
5699a2dd95SBruce Richardson 	/** The type of eventdev enqueue operation - new/forward/release */
5799a2dd95SBruce Richardson 	uint8_t evt_op;
5899a2dd95SBruce Richardson };
5999a2dd95SBruce Richardson 
6099a2dd95SBruce Richardson /** Eventdev_writer port operations. */
6199a2dd95SBruce Richardson extern struct rte_port_out_ops rte_port_eventdev_writer_ops;
6299a2dd95SBruce Richardson 
6399a2dd95SBruce Richardson /** Event_writer_nodrop port parameters. */
6499a2dd95SBruce Richardson struct rte_port_eventdev_writer_nodrop_params {
6599a2dd95SBruce Richardson 	/** Eventdev Device ID. */
6699a2dd95SBruce Richardson 	uint8_t eventdev_id;
6799a2dd95SBruce Richardson 
6899a2dd95SBruce Richardson 	/** Eventdev Port ID. */
6999a2dd95SBruce Richardson 	uint16_t port_id;
7099a2dd95SBruce Richardson 
7199a2dd95SBruce Richardson 	/** Eventdev Queue ID. */
7299a2dd95SBruce Richardson 	uint16_t queue_id;
7399a2dd95SBruce Richardson 
7499a2dd95SBruce Richardson 	/** Burst size to eventdev interface. */
7599a2dd95SBruce Richardson 	uint32_t enq_burst_sz;
7699a2dd95SBruce Richardson 
7799a2dd95SBruce Richardson 	/** Scheduler synchronization type (RTE_SCHED_TYPE_*)*/
7899a2dd95SBruce Richardson 	uint8_t sched_type;
7999a2dd95SBruce Richardson 
8099a2dd95SBruce Richardson 	/** The type of eventdev enqueue operation - new/forward/release */
8199a2dd95SBruce Richardson 	uint8_t evt_op;
8299a2dd95SBruce Richardson 
8399a2dd95SBruce Richardson 	/** Maximum number of retries, 0 for no limit. */
8499a2dd95SBruce Richardson 	uint32_t n_retries;
8599a2dd95SBruce Richardson };
8699a2dd95SBruce Richardson 
8799a2dd95SBruce Richardson /** Eventdev_writer_nodrop port operations. */
8899a2dd95SBruce Richardson extern struct rte_port_out_ops rte_port_eventdev_writer_nodrop_ops;
8999a2dd95SBruce Richardson 
9099a2dd95SBruce Richardson #ifdef __cplusplus
9199a2dd95SBruce Richardson }
9299a2dd95SBruce Richardson #endif
9399a2dd95SBruce Richardson 
9499a2dd95SBruce Richardson #endif
95