numam-dpdk/lib/dmadev/rte_dmadev_core.h
Sean Morrissey f8dbaebbf1 fix PMD wording
Removing the use of driver following PMD as its unnecessary.

Cc: stable@dpdk.org

Signed-off-by: Sean Morrissey <sean.morrissey@intel.com>
Signed-off-by: Conor Fogarty <conor.fogarty@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Reviewed-by: Conor Walsh <conor.walsh@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2021-11-26 11:28:34 +01:00

81 lines
2.6 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2021 HiSilicon Limited
* Copyright(c) 2021 Intel Corporation
*/
#ifndef RTE_DMADEV_CORE_H
#define RTE_DMADEV_CORE_H
/**
* @file
*
* DMA Device internal header.
*
* This header contains internal data types which are used by dataplane inline
* function.
*
* Applications should not use these functions directly.
*/
/** @internal Used to enqueue a copy operation. */
typedef int (*rte_dma_copy_t)(void *dev_private, uint16_t vchan,
rte_iova_t src, rte_iova_t dst,
uint32_t length, uint64_t flags);
/** @internal Used to enqueue a scatter-gather list copy operation. */
typedef int (*rte_dma_copy_sg_t)(void *dev_private, uint16_t vchan,
const struct rte_dma_sge *src,
const struct rte_dma_sge *dst,
uint16_t nb_src, uint16_t nb_dst,
uint64_t flags);
/** @internal Used to enqueue a fill operation. */
typedef int (*rte_dma_fill_t)(void *dev_private, uint16_t vchan,
uint64_t pattern, rte_iova_t dst,
uint32_t length, uint64_t flags);
/** @internal Used to trigger hardware to begin working. */
typedef int (*rte_dma_submit_t)(void *dev_private, uint16_t vchan);
/** @internal Used to return number of successful completed operations. */
typedef uint16_t (*rte_dma_completed_t)(void *dev_private,
uint16_t vchan, const uint16_t nb_cpls,
uint16_t *last_idx, bool *has_error);
/** @internal Used to return number of completed operations. */
typedef uint16_t (*rte_dma_completed_status_t)(void *dev_private,
uint16_t vchan, const uint16_t nb_cpls,
uint16_t *last_idx, enum rte_dma_status_code *status);
/** @internal Used to check the remaining space in descriptor ring. */
typedef uint16_t (*rte_dma_burst_capacity_t)(const void *dev_private, uint16_t vchan);
/**
* @internal
* Fast-path dmadev functions and related data are hold in a flat array.
* One entry per dmadev.
*
* This structure occupy exactly 128B which reserve space for future IO
* functions.
*
* The 'dev_private' field was placed in the first cache line to optimize
* performance because the PMD mainly depends on this field.
*/
struct rte_dma_fp_object {
/** PMD-specific private data. The driver should copy
* rte_dma_dev.data->dev_private to this field during initialization.
*/
void *dev_private;
rte_dma_copy_t copy;
rte_dma_copy_sg_t copy_sg;
rte_dma_fill_t fill;
rte_dma_submit_t submit;
rte_dma_completed_t completed;
rte_dma_completed_status_t completed_status;
rte_dma_burst_capacity_t burst_capacity;
} __rte_aligned(128);
extern struct rte_dma_fp_object *rte_dma_fp_objs;
#endif /* RTE_DMADEV_CORE_H */