File: eventdev_private.c

package info (click to toggle)
dpdk 25.11-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 127,892 kB
  • sloc: ansic: 2,358,479; python: 16,426; sh: 4,474; makefile: 1,713; awk: 70
file content (158 lines) | stat: -rw-r--r-- 4,716 bytes parent folder | download
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;
}