#include <crypto/internal/hash.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/xxhash.h>
#include <asm/unaligned.h>
#define XXHASH64_BLOCK_SIZE …
#define XXHASH64_DIGEST_SIZE …
struct xxhash64_tfm_ctx { … };
struct xxhash64_desc_ctx { … };
static int xxhash64_setkey(struct crypto_shash *tfm, const u8 *key,
unsigned int keylen)
{ … }
static int xxhash64_init(struct shash_desc *desc)
{ … }
static int xxhash64_update(struct shash_desc *desc, const u8 *data,
unsigned int length)
{ … }
static int xxhash64_final(struct shash_desc *desc, u8 *out)
{ … }
static int xxhash64_digest(struct shash_desc *desc, const u8 *data,
unsigned int length, u8 *out)
{ … }
static struct shash_alg alg = …;
static int __init xxhash_mod_init(void)
{ … }
static void __exit xxhash_mod_fini(void)
{ … }
subsys_initcall(xxhash_mod_init);
module_exit(xxhash_mod_fini);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;