5#ifndef _RTE_ETHDEV_CORE_H_
6#define _RTE_ETHDEV_CORE_H_
19struct rte_eth_dev_callback;
28typedef uint16_t (*eth_rx_burst_t)(
void *rxq,
35typedef uint16_t (*eth_tx_burst_t)(
void *
txq,
42typedef uint16_t (*eth_tx_prep_t)(
void *
txq,
48typedef uint32_t (*eth_rx_queue_count_t)(
void *rxq);
51typedef int (*eth_rx_descriptor_status_t)(
void *rxq, uint16_t offset);
54typedef int (*eth_tx_descriptor_status_t)(
void *
txq, uint16_t offset);
57typedef uint16_t (*eth_recycle_tx_mbufs_reuse_t)(
void *
txq,
61typedef void (*eth_recycle_rx_descriptors_refill_t)(
void *rxq, uint16_t nb);
70struct rte_ethdev_qdata {
74 RTE_ATOMIC(
void *) *clbk;
84struct rte_eth_fp_ops {
92 struct rte_ethdev_qdata rxq;
94 eth_rx_burst_t rx_pkt_burst;
96 eth_rx_queue_count_t rx_queue_count;
98 eth_rx_descriptor_status_t rx_descriptor_status;
100 eth_recycle_rx_descriptors_refill_t recycle_rx_descriptors_refill;
101 uintptr_t reserved1[2];
110 struct rte_ethdev_qdata txq;
112 eth_tx_burst_t tx_pkt_burst;
114 eth_tx_prep_t tx_pkt_prepare;
116 eth_tx_descriptor_status_t tx_descriptor_status;
118 eth_recycle_tx_mbufs_reuse_t recycle_tx_mbufs_reuse;
119 uintptr_t reserved2[2];
124extern struct rte_eth_fp_ops rte_eth_fp_ops[RTE_MAX_ETHPORTS];
RTE_TAILQ_HEAD(rte_class_list, rte_class)
#define __rte_cache_aligned