1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (C) 2020 Marvell International Ltd.
3  */
4 
5 #ifndef _OTX2_CRYPTODEV_QP_H_
6 #define _OTX2_CRYPTODEV_QP_H_
7 
8 #include <rte_common.h>
9 #include <rte_eventdev.h>
10 #include <rte_mempool.h>
11 #include <rte_spinlock.h>
12 
13 #include "cpt_common.h"
14 
15 struct otx2_cpt_qp {
16 	uint32_t id;
17 	/**< Queue pair id */
18 	uintptr_t base;
19 	/**< Base address where BAR is mapped */
20 	void *lmtline;
21 	/**< Address of LMTLINE */
22 	rte_iova_t lf_nq_reg;
23 	/**< LF enqueue register address */
24 	struct pending_queue pend_q;
25 	/**< Pending queue */
26 	struct rte_mempool *sess_mp;
27 	/**< Session mempool */
28 	struct rte_mempool *sess_mp_priv;
29 	/**< Session private data mempool */
30 	struct cpt_qp_meta_info meta_info;
31 	/**< Metabuf info required to support operations on the queue pair */
32 	rte_iova_t iq_dma_addr;
33 	/**< Instruction queue address */
34 	struct rte_event ev;
35 	/**< Event information required for binding cryptodev queue to
36 	 * eventdev queue. Used by crypto adapter.
37 	 */
38 	uint8_t ca_enable;
39 	/**< Set when queue pair is added to crypto adapter */
40 };
41 
42 #endif /* _OTX2_CRYPTODEV_QP_H_ */
43