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