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