#include <crypto/internal/hash.h>
#include <crypto/md5.h>
#include <crypto/sha1.h>
#include <crypto/sha2.h>
#include <linux/bottom_half.h>
#include <linux/dma-mapping.h>
#include <linux/kernel.h>
#include <linux/pm_runtime.h>
#include <linux/scatterlist.h>
#include <linux/slab.h>
#include <linux/string.h>
#include "sun8i-ce.h"
int sun8i_ce_hash_init_tfm(struct crypto_ahash *tfm)
{ … }
void sun8i_ce_hash_exit_tfm(struct crypto_ahash *tfm)
{ … }
int sun8i_ce_hash_init(struct ahash_request *areq)
{ … }
int sun8i_ce_hash_export(struct ahash_request *areq, void *out)
{ … }
int sun8i_ce_hash_import(struct ahash_request *areq, const void *in)
{ … }
int sun8i_ce_hash_final(struct ahash_request *areq)
{ … }
int sun8i_ce_hash_update(struct ahash_request *areq)
{ … }
int sun8i_ce_hash_finup(struct ahash_request *areq)
{ … }
static int sun8i_ce_hash_digest_fb(struct ahash_request *areq)
{ … }
static bool sun8i_ce_hash_need_fallback(struct ahash_request *areq)
{ … }
int sun8i_ce_hash_digest(struct ahash_request *areq)
{ … }
static u64 hash_pad(__le32 *buf, unsigned int bufsize, u64 padi, u64 byte_count, bool le, int bs)
{ … }
int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq)
{ … }