linux/drivers/crypto/qat/qat_common/qat_crypto.h
<<
>>
Prefs
   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