mem: add dirty malloc element support
[dpdk.git] / drivers / raw / dpaa2_qdma / rte_pmd_dpaa2_qdma.h
index ff4fc1d..1314474 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2018-2020 NXP
+ * Copyright 2018-2021 NXP
  */
 
 #ifndef __RTE_PMD_DPAA2_QDMA_H__
@@ -52,6 +52,10 @@ enum {
 
 #define RTE_QDMA_VQ_FD_LONG_FORMAT             (1ULL << 1)
 
+#define RTE_QDMA_VQ_FD_SG_FORMAT               (1ULL << 2)
+
+#define RTE_QDMA_VQ_NO_RESPONSE                        (1ULL << 3)
+
 /** States if the source addresses is physical. */
 #define RTE_QDMA_JOB_SRC_PHY           (1ULL)
 
@@ -78,7 +82,7 @@ struct rte_qdma_config {
         * maximum number of inflight jobs on the QDMA device. This should
         * be power of 2.
         */
-       int fle_pool_count;
+       int fle_queue_pool_cnt;
 };
 
 struct rte_qdma_rbp {
@@ -152,6 +156,11 @@ struct rte_qdma_job {
         */
        uint16_t status;
        uint16_t vq_id;
+       /**
+        * FLE pool element maintained by user, in case no qDMA response.
+        * Note: the address must be allocated from DPDK memory pool.
+        */
+       void *usr_elem;
 };
 
 struct rte_qdma_enqdeq {
@@ -168,13 +177,13 @@ struct rte_qdma_queue_config {
 #define rte_qdma_info rte_rawdev_info
 #define rte_qdma_start(id) rte_rawdev_start(id)
 #define rte_qdma_reset(id) rte_rawdev_reset(id)
-#define rte_qdma_configure(id, cf) rte_rawdev_configure(id, cf)
+#define rte_qdma_configure(id, cf, sz) rte_rawdev_configure(id, cf, sz)
 #define rte_qdma_dequeue_buffers(id, buf, num, ctxt) \
        rte_rawdev_dequeue_buffers(id, buf, num, ctxt)
 #define rte_qdma_enqueue_buffers(id, buf, num, ctxt) \
        rte_rawdev_enqueue_buffers(id, buf, num, ctxt)
-#define rte_qdma_queue_setup(id, qid, cfg) \
-       rte_rawdev_queue_setup(id, qid, cfg)
+#define rte_qdma_queue_setup(id, qid, cfg, sz) \
+       rte_rawdev_queue_setup(id, qid, cfg, sz)
 
 /*TODO introduce per queue stats API in rawdew */
 /**