#include <linux/types.h>
#include <linux/module.h>
#include <linux/crc-t10dif.h>
#include <crypto/internal/hash.h>
#include <crypto/internal/simd.h>
#include <linux/init.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <asm/cpufeatures.h>
#include <asm/cpu_device_id.h>
#include <asm/simd.h>
asmlinkage u16 crc_t10dif_pcl(u16 init_crc, const u8 *buf, size_t len);
struct chksum_desc_ctx { … };
static int chksum_init(struct shash_desc *desc)
{ … }
static int chksum_update(struct shash_desc *desc, const u8 *data,
unsigned int length)
{ … }
static int chksum_final(struct shash_desc *desc, u8 *out)
{ … }
static int __chksum_finup(__u16 crc, const u8 *data, unsigned int len, u8 *out)
{ … }
static int chksum_finup(struct shash_desc *desc, const u8 *data,
unsigned int len, u8 *out)
{ … }
static int chksum_digest(struct shash_desc *desc, const u8 *data,
unsigned int length, u8 *out)
{ … }
static struct shash_alg alg = …;
static const struct x86_cpu_id crct10dif_cpu_id[] = …;
MODULE_DEVICE_TABLE(x86cpu, crct10dif_cpu_id);
static int __init crct10dif_intel_mod_init(void)
{ … }
static void __exit crct10dif_intel_mod_fini(void)
{ … }
module_init(…) …;
module_exit(crct10dif_intel_mod_fini);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS_CRYPTO(…) …;
MODULE_ALIAS_CRYPTO(…) …;