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_ 5 6#include <linux/list.h> 7#include <linux/slab.h> 8#include "adf_accel_devices.h" 9#include "icp_qat_fw_la.h" 10 11struct 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; 18 unsigned long state; 19 int id; 20 atomic_t refctr; 21}; 22 23struct qat_crypto_request_buffs { 24 struct qat_alg_buf_list *bl; 25 dma_addr_t blp; 26 struct qat_alg_buf_list *blout; 27 dma_addr_t bloutp; 28 size_t sz; 29 size_t sz_out; 30}; 31 32struct qat_crypto_request; 33 34struct qat_crypto_request { 35 struct icp_qat_fw_la_bulk_req req; 36 union { 37 struct qat_alg_aead_ctx *aead_ctx; 38 struct qat_alg_skcipher_ctx *skcipher_ctx; 39 }; 40 union { 41 struct aead_request *aead_req; 42 struct skcipher_request *skcipher_req; 43 }; 44 struct qat_crypto_request_buffs buf; 45 void (*cb)(struct icp_qat_fw_la_resp *resp, 46 struct qat_crypto_request *req); 47 void *iv; 48 dma_addr_t iv_paddr; 49}; 50 51#endif 52