linux/drivers/crypto/hisilicon/sec2/sec.h

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2019 HiSilicon Limited. */

#ifndef __HISI_SEC_V2_H
#define __HISI_SEC_V2_H

#include <linux/hisi_acc_qm.h>
#include "sec_crypto.h"

/* Algorithm resource per hardware SEC queue */
struct sec_alg_res {};

/* Cipher request of SEC private */
struct sec_cipher_req {};

struct sec_aead_req {};

/* SEC request of Crypto */
struct sec_req {};

/**
 * struct sec_req_op - Operations for SEC request
 * @buf_map: DMA map the SGL buffers of the request
 * @buf_unmap: DMA unmap the SGL buffers of the request
 * @bd_fill: Fill the SEC queue BD
 * @bd_send: Send the SEC BD into the hardware queue
 * @callback: Call back for the request
 * @process: Main processing logic of Skcipher
 */
struct sec_req_op {};

/* SEC auth context */
struct sec_auth_ctx {};

/* SEC cipher context which cipher's relatives */
struct sec_cipher_ctx {};

/* SEC queue context which defines queue's relatives */
struct sec_qp_ctx {};

enum sec_alg_type {};

/* SEC Crypto TFM context which defines queue and cipher .etc relatives */
struct sec_ctx {};


enum sec_debug_file_index {};

struct sec_debug_file {};

struct sec_dfx {};

struct sec_debug {};

struct sec_dev {};

enum sec_cap_type {};

enum sec_cap_reg_record_idx {};

void sec_destroy_qps(struct hisi_qp **qps, int qp_num);
struct hisi_qp **sec_create_qps(void);
int sec_register_to_crypto(struct hisi_qm *qm);
void sec_unregister_from_crypto(struct hisi_qm *qm);
u64 sec_get_alg_bitmap(struct hisi_qm *qm, u32 high, u32 low);
#endif