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