1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
5 #ifndef _CNXK_CRYPTODEV_OPS_H_
6 #define _CNXK_CRYPTODEV_OPS_H_
8 #include <rte_cryptodev.h>
12 #define CNXK_CPT_MIN_HEADROOM_REQ 24
14 struct cpt_qp_meta_info {
15 struct rte_mempool *pool;
19 struct cpt_inflight_req {
21 struct rte_crypto_op *cop;
26 struct pending_queue {
27 /** Pending requests count */
28 uint64_t pending_count;
29 /** Array of pending requests */
30 struct cpt_inflight_req *req_queue;
31 /** Tail of queue to be used for enqueue */
33 /** Head of queue to be used for dequeue */
35 /** Timeout to track h/w being unresponsive */
42 struct pending_queue pend_q;
44 struct rte_mempool *sess_mp;
45 /**< Session mempool */
46 struct rte_mempool *sess_mp_priv;
47 /**< Session private data mempool */
48 struct cpt_qp_meta_info meta_info;
49 /**< Metabuf info required to support operations on the queue pair */
50 struct roc_cpt_lmtline lmtline;
51 /**< Lmtline information */
54 int cnxk_cpt_dev_config(struct rte_cryptodev *dev,
55 struct rte_cryptodev_config *conf);
57 int cnxk_cpt_dev_start(struct rte_cryptodev *dev);
59 void cnxk_cpt_dev_stop(struct rte_cryptodev *dev);
61 int cnxk_cpt_dev_close(struct rte_cryptodev *dev);
63 void cnxk_cpt_dev_info_get(struct rte_cryptodev *dev,
64 struct rte_cryptodev_info *info);
66 int cnxk_cpt_queue_pair_setup(struct rte_cryptodev *dev, uint16_t qp_id,
67 const struct rte_cryptodev_qp_conf *conf,
68 int socket_id __rte_unused);
70 int cnxk_cpt_queue_pair_release(struct rte_cryptodev *dev, uint16_t qp_id);
72 #endif /* _CNXK_CRYPTODEV_OPS_H_ */