1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2021 Marvell. 3 */ 4 5 #include "eventdev_pmd.h" 6 #include "rte_eventdev.h" 7 8 static uint16_t 9 dummy_event_enqueue(__rte_unused void *port, 10 __rte_unused const struct rte_event *ev) 11 { 12 RTE_EDEV_LOG_ERR( 13 "event enqueue requested for unconfigured event device"); 14 return 0; 15 } 16 17 static uint16_t 18 dummy_event_enqueue_burst(__rte_unused void *port, 19 __rte_unused const struct rte_event ev[], 20 __rte_unused uint16_t nb_events) 21 { 22 RTE_EDEV_LOG_ERR( 23 "event enqueue burst requested for unconfigured event device"); 24 return 0; 25 } 26 27 static uint16_t 28 dummy_event_dequeue(__rte_unused void *port, __rte_unused struct rte_event *ev, 29 __rte_unused uint64_t timeout_ticks) 30 { 31 RTE_EDEV_LOG_ERR( 32 "event dequeue requested for unconfigured event device"); 33 return 0; 34 } 35 36 static uint16_t 37 dummy_event_dequeue_burst(__rte_unused void *port, 38 __rte_unused struct rte_event ev[], 39 __rte_unused uint16_t nb_events, 40 __rte_unused uint64_t timeout_ticks) 41 { 42 RTE_EDEV_LOG_ERR( 43 "event dequeue burst requested for unconfigured event device"); 44 return 0; 45 } 46 47 static void 48 dummy_event_maintain(__rte_unused void *port, __rte_unused int op) 49 { 50 RTE_EDEV_LOG_ERR( 51 "maintenance requested for unconfigured event device"); 52 } 53 54 static uint16_t 55 dummy_event_tx_adapter_enqueue(__rte_unused void *port, 56 __rte_unused struct rte_event ev[], 57 __rte_unused uint16_t nb_events) 58 { 59 RTE_EDEV_LOG_ERR( 60 "event Tx adapter enqueue requested for unconfigured event device"); 61 return 0; 62 } 63 64 static uint16_t 65 dummy_event_tx_adapter_enqueue_same_dest(__rte_unused void *port, 66 __rte_unused struct rte_event ev[], 67 __rte_unused uint16_t nb_events) 68 { 69 RTE_EDEV_LOG_ERR( 70 "event Tx adapter enqueue same destination requested for unconfigured event device"); 71 return 0; 72 } 73 74 static uint16_t 75 dummy_event_crypto_adapter_enqueue(__rte_unused void *port, 76 __rte_unused struct rte_event ev[], 77 __rte_unused uint16_t nb_events) 78 { 79 RTE_EDEV_LOG_ERR( 80 "event crypto adapter enqueue requested for unconfigured event device"); 81 return 0; 82 } 83 84 static uint16_t 85 dummy_event_dma_adapter_enqueue(__rte_unused void *port, __rte_unused struct rte_event ev[], 86 __rte_unused uint16_t nb_events) 87 { 88 RTE_EDEV_LOG_ERR("event DMA adapter enqueue requested for unconfigured event device"); 89 return 0; 90 } 91 92 static int 93 dummy_event_port_profile_switch(__rte_unused void *port, __rte_unused uint8_t profile_id) 94 { 95 RTE_EDEV_LOG_ERR("change profile requested for unconfigured event device"); 96 return -EINVAL; 97 } 98 99 void 100 event_dev_fp_ops_reset(struct rte_event_fp_ops *fp_op) 101 { 102 static void *dummy_data[RTE_MAX_QUEUES_PER_PORT]; 103 static const struct rte_event_fp_ops dummy = { 104 .enqueue = dummy_event_enqueue, 105 .enqueue_burst = dummy_event_enqueue_burst, 106 .enqueue_new_burst = dummy_event_enqueue_burst, 107 .enqueue_forward_burst = dummy_event_enqueue_burst, 108 .dequeue = dummy_event_dequeue, 109 .dequeue_burst = dummy_event_dequeue_burst, 110 .maintain = dummy_event_maintain, 111 .txa_enqueue = dummy_event_tx_adapter_enqueue, 112 .txa_enqueue_same_dest = 113 dummy_event_tx_adapter_enqueue_same_dest, 114 .ca_enqueue = dummy_event_crypto_adapter_enqueue, 115 .dma_enqueue = dummy_event_dma_adapter_enqueue, 116 .profile_switch = dummy_event_port_profile_switch, 117 .data = dummy_data, 118 }; 119 120 *fp_op = dummy; 121 } 122 123 void 124 event_dev_fp_ops_set(struct rte_event_fp_ops *fp_op, 125 const struct rte_eventdev *dev) 126 { 127 fp_op->enqueue = dev->enqueue; 128 fp_op->enqueue_burst = dev->enqueue_burst; 129 fp_op->enqueue_new_burst = dev->enqueue_new_burst; 130 fp_op->enqueue_forward_burst = dev->enqueue_forward_burst; 131 fp_op->dequeue = dev->dequeue; 132 fp_op->dequeue_burst = dev->dequeue_burst; 133 fp_op->maintain = dev->maintain; 134 fp_op->txa_enqueue = dev->txa_enqueue; 135 fp_op->txa_enqueue_same_dest = dev->txa_enqueue_same_dest; 136 fp_op->ca_enqueue = dev->ca_enqueue; 137 fp_op->dma_enqueue = dev->dma_enqueue; 138 fp_op->profile_switch = dev->profile_switch; 139 fp_op->data = dev->data->ports; 140 } 141