1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2019 Intel Corporation 3 */ 4 5 #ifndef __INCLUDE_RTE_PORT_EVENTDEV_H__ 6 #define __INCLUDE_RTE_PORT_EVENTDEV_H__ 7 8 /** 9 * @file 10 * RTE Port Eventdev Interface 11 * 12 * eventdev_reader: input port built on top of pre-initialized eventdev 13 * interface 14 * eventdev_writer: output port built on top of pre-initialized eventdev 15 * interface 16 */ 17 18 #include <stdint.h> 19 #include <rte_eventdev.h> 20 21 #include "rte_port.h" 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /** Eventdev_reader port parameters */ 28 struct rte_port_eventdev_reader_params { 29 /** Eventdev Device ID */ 30 uint8_t eventdev_id; 31 32 /** Eventdev Port ID */ 33 uint8_t port_id; 34 }; 35 36 /** Eventdev_reader port operations. */ 37 extern struct rte_port_in_ops rte_port_eventdev_reader_ops; 38 39 /** Eventdev_writer port parameters. */ 40 struct rte_port_eventdev_writer_params { 41 /** Eventdev Device ID. */ 42 uint8_t eventdev_id; 43 44 /** Eventdev Port ID. */ 45 uint8_t port_id; 46 47 /** Eventdev Queue ID. */ 48 uint8_t queue_id; 49 50 /** Burst size to eventdev interface. */ 51 uint32_t enq_burst_sz; 52 53 /** Scheduler synchronization type (RTE_SCHED_TYPE_*)*/ 54 uint8_t sched_type; 55 56 /** The type of eventdev enqueue operation - new/forward/release */ 57 uint8_t evt_op; 58 }; 59 60 /** Eventdev_writer port operations. */ 61 extern struct rte_port_out_ops rte_port_eventdev_writer_ops; 62 63 /** Event_writer_nodrop port parameters. */ 64 struct rte_port_eventdev_writer_nodrop_params { 65 /** Eventdev Device ID. */ 66 uint8_t eventdev_id; 67 68 /** Eventdev Port ID. */ 69 uint16_t port_id; 70 71 /** Eventdev Queue ID. */ 72 uint16_t queue_id; 73 74 /** Burst size to eventdev interface. */ 75 uint32_t enq_burst_sz; 76 77 /** Scheduler synchronization type (RTE_SCHED_TYPE_*)*/ 78 uint8_t sched_type; 79 80 /** The type of eventdev enqueue operation - new/forward/release */ 81 uint8_t evt_op; 82 83 /** Maximum number of retries, 0 for no limit. */ 84 uint32_t n_retries; 85 }; 86 87 /** Eventdev_writer_nodrop port operations. */ 88 extern struct rte_port_out_ops rte_port_eventdev_writer_nodrop_ops; 89 90 #ifdef __cplusplus 91 } 92 #endif 93 94 #endif 95