#include <linux/completion.h>
#include <crypto/internal/rng.h>
#include <linux/dma-mapping.h>
#include <linux/kernel.h>
#include "compat.h"
#include "regs.h"
#include "intern.h"
#include "desc_constr.h"
#include "jr.h"
#include "error.h"
#define CAAM_PRNG_MAX_DESC_LEN …
struct caam_prng_ctx { … };
struct caam_prng_alg { … };
static void caam_prng_done(struct device *jrdev, u32 *desc, u32 err,
void *context)
{ … }
static u32 *caam_init_reseed_desc(u32 *desc)
{ … }
static u32 *caam_init_prng_desc(u32 *desc, dma_addr_t dst_dma, u32 len)
{ … }
static int caam_prng_generate(struct crypto_rng *tfm,
const u8 *src, unsigned int slen,
u8 *dst, unsigned int dlen)
{ … }
static void caam_prng_exit(struct crypto_tfm *tfm) { … }
static int caam_prng_init(struct crypto_tfm *tfm)
{ … }
static int caam_prng_seed(struct crypto_rng *tfm,
const u8 *seed, unsigned int slen)
{ … }
static struct caam_prng_alg caam_prng_alg = …;
void caam_prng_unregister(void *data)
{ … }
int caam_prng_register(struct device *ctrldev)
{ … }