#include <linux/types.h>
#include <linux/module.h>
#include <linux/crc64.h>
#include <linux/err.h>
#include <linux/init.h>
#include <crypto/hash.h>
#include <crypto/algapi.h>
#include <linux/static_key.h>
#include <linux/notifier.h>
static struct crypto_shash __rcu *crc64_rocksoft_tfm;
static DEFINE_STATIC_KEY_TRUE(crc64_rocksoft_fallback);
static DEFINE_MUTEX(crc64_rocksoft_mutex);
static struct work_struct crc64_rocksoft_rehash_work;
static int crc64_rocksoft_notify(struct notifier_block *self, unsigned long val, void *data)
{ … }
static void crc64_rocksoft_rehash(struct work_struct *work)
{ … }
static struct notifier_block crc64_rocksoft_nb = …;
u64 crc64_rocksoft_update(u64 crc, const unsigned char *buffer, size_t len)
{ … }
EXPORT_SYMBOL_GPL(…);
u64 crc64_rocksoft(const unsigned char *buffer, size_t len)
{ … }
EXPORT_SYMBOL_GPL(…);
static int __init crc64_rocksoft_mod_init(void)
{ … }
static void __exit crc64_rocksoft_mod_fini(void)
{ … }
module_init(…) …;
module_exit(crc64_rocksoft_mod_fini);
static int crc64_rocksoft_transform_show(char *buffer, const struct kernel_param *kp)
{ … }
module_param_call(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_SOFTDEP(…) …;