DPDK  22.07.0
rte_pmd_dpaa2_qdma.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2021-2022 NXP
3  */
4 
5 #ifndef _RTE_PMD_DPAA2_QDMA_H_
6 #define _RTE_PMD_DPAA2_QDMA_H_
7 
9 #define RTE_DPAA2_QDMA_JOB_SRC_PHY (1ULL << 30)
10 
12 #define RTE_DPAA2_QDMA_JOB_DEST_PHY (1ULL << 31)
13 
14 struct rte_dpaa2_qdma_rbp {
15  uint32_t use_ultrashort:1;
16  uint32_t enable:1;
26  uint32_t dportid:4;
27  uint32_t dpfid:2;
28  uint32_t dvfid:6;
29  /*using route by port for destination */
30  uint32_t drbp:1;
40  uint32_t sportid:4;
41  uint32_t spfid:2;
42  uint32_t svfid:6;
43  /* using route by port for source */
44  uint32_t srbp:1;
45  uint32_t rsv:4;
46 };
47 
51  uint64_t src;
53  uint64_t dest;
55  uint32_t len;
57  uint32_t flags;
64  uint16_t status;
65  uint16_t vq_id;
70  void *usr_elem;
71 };
72 
85 __rte_experimental
86 void rte_dpaa2_qdma_vchan_fd_us_enable(int16_t dev_id, uint16_t vchan);
87 
100 __rte_experimental
101 void rte_dpaa2_qdma_vchan_internal_sg_enable(int16_t dev_id, uint16_t vchan);
102 
117 __rte_experimental
118 void rte_dpaa2_qdma_vchan_rbp_enable(int16_t dev_id, uint16_t vchan,
119  struct rte_dpaa2_qdma_rbp *rbp_config);
120 
146 __rte_experimental
147 int rte_dpaa2_qdma_copy_multi(int16_t dev_id, uint16_t vchan,
148  struct rte_dpaa2_qdma_job **jobs, uint16_t nb_cpls);
149 
169 __rte_experimental
170 uint16_t rte_dpaa2_qdma_completed_multi(int16_t dev_id, uint16_t vchan,
171  struct rte_dpaa2_qdma_job **jobs, uint16_t nb_cpls);
172 
173 #endif /* _RTE_PMD_DPAA2_QDMA_H_ */