DPDK 22.11.6
rte_dmadev_core.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2021 HiSilicon Limited
3 * Copyright(c) 2021 Intel Corporation
4 */
5
6#ifndef RTE_DMADEV_CORE_H
7#define RTE_DMADEV_CORE_H
8
21typedef int (*rte_dma_copy_t)(void *dev_private, uint16_t vchan,
22 rte_iova_t src, rte_iova_t dst,
23 uint32_t length, uint64_t flags);
24
26typedef int (*rte_dma_copy_sg_t)(void *dev_private, uint16_t vchan,
27 const struct rte_dma_sge *src,
28 const struct rte_dma_sge *dst,
29 uint16_t nb_src, uint16_t nb_dst,
30 uint64_t flags);
31
33typedef int (*rte_dma_fill_t)(void *dev_private, uint16_t vchan,
34 uint64_t pattern, rte_iova_t dst,
35 uint32_t length, uint64_t flags);
36
38typedef int (*rte_dma_submit_t)(void *dev_private, uint16_t vchan);
39
41typedef uint16_t (*rte_dma_completed_t)(void *dev_private,
42 uint16_t vchan, const uint16_t nb_cpls,
43 uint16_t *last_idx, bool *has_error);
44
46typedef uint16_t (*rte_dma_completed_status_t)(void *dev_private,
47 uint16_t vchan, const uint16_t nb_cpls,
48 uint16_t *last_idx, enum rte_dma_status_code *status);
49
51typedef uint16_t (*rte_dma_burst_capacity_t)(const void *dev_private, uint16_t vchan);
52
64struct rte_dma_fp_object {
68 void *dev_private;
69 rte_dma_copy_t copy;
70 rte_dma_copy_sg_t copy_sg;
71 rte_dma_fill_t fill;
72 rte_dma_submit_t submit;
73 rte_dma_completed_t completed;
74 rte_dma_completed_status_t completed_status;
75 rte_dma_burst_capacity_t burst_capacity;
76} __rte_aligned(128);
77
78extern struct rte_dma_fp_object *rte_dma_fp_objs;
79
80#endif /* RTE_DMADEV_CORE_H */
uint64_t rte_iova_t
Definition: rte_common.h:458
rte_dma_status_code
Definition: rte_dmadev.h:729
void * dev_private
__extension__ struct rte_eth_link __rte_aligned(8)
uint32_t length
Definition: rte_dmadev.h:795