DPDK 25.11.0-rc1
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
54typedef uint16_t (*rte_dma_enqueue_ops_t)(void *dev_private, uint16_t vchan,
55 struct rte_dma_op **ops, uint16_t nb_ops);
56
58typedef uint16_t (*rte_dma_dequeue_ops_t)(void *dev_private, uint16_t vchan,
59 struct rte_dma_op **ops, uint16_t nb_ops);
60
72struct __rte_cache_aligned rte_dma_fp_object {
76 void *dev_private;
77 rte_dma_copy_t copy;
78 rte_dma_copy_sg_t copy_sg;
79 rte_dma_fill_t fill;
80 rte_dma_submit_t submit;
81 rte_dma_completed_t completed;
82 rte_dma_completed_status_t completed_status;
83 rte_dma_burst_capacity_t burst_capacity;
84 rte_dma_enqueue_ops_t enqueue;
85 rte_dma_dequeue_ops_t dequeue;
86};
87
88extern struct rte_dma_fp_object *rte_dma_fp_objs;
89
90#endif /* RTE_DMADEV_CORE_H */
uint64_t rte_iova_t
Definition: rte_common.h:770
#define __rte_cache_aligned
Definition: rte_common.h:739
rte_dma_status_code
Definition: rte_dmadev.h:980
uint16_t vchan
Definition: rte_dmadev.h:1097
uint32_t length
Definition: rte_dmadev.h:1046