1 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only) */
2 /* Copyright(c) 2014 - 2020 Intel Corporation */
3 #ifndef _QAT_CRYPTO_INSTANCE_H_
4 #define _QAT_CRYPTO_INSTANCE_H_
6 #include <linux/list.h>
7 #include <linux/slab.h>
8 #include "adf_accel_devices.h"
9 #include "icp_qat_fw_la.h"
11 struct qat_crypto_instance {
12 struct adf_etr_ring_data *sym_tx;
13 struct adf_etr_ring_data *sym_rx;
14 struct adf_etr_ring_data *pke_tx;
15 struct adf_etr_ring_data *pke_rx;
16 struct adf_accel_dev *accel_dev;
17 struct list_head list;
23 #define QAT_MAX_BUFF_DESC 4
31 struct qat_alg_buf_list {
35 struct qat_alg_buf bufers[];
38 struct qat_alg_fixed_buf_list {
39 struct qat_alg_buf_list sgl_hdr;
40 struct qat_alg_buf descriptors[QAT_MAX_BUFF_DESC];
41 } __packed __aligned(64);
43 struct qat_crypto_request_buffs {
44 struct qat_alg_buf_list *bl;
46 struct qat_alg_buf_list *blout;
52 struct qat_alg_fixed_buf_list sgl_src;
53 struct qat_alg_fixed_buf_list sgl_dst;
56 struct qat_crypto_request;
58 struct qat_crypto_request {
59 struct icp_qat_fw_la_bulk_req req;
61 struct qat_alg_aead_ctx *aead_ctx;
62 struct qat_alg_skcipher_ctx *skcipher_ctx;
65 struct aead_request *aead_req;
66 struct skcipher_request *skcipher_req;
68 struct qat_crypto_request_buffs buf;
69 void (*cb)(struct icp_qat_fw_la_resp *resp,
70 struct qat_crypto_request *req);