libcrc32c: Add crc32c_impl function
authorNikolay Borisov <nborisov@suse.com>
Mon, 8 Jan 2018 09:45:04 +0000 (11:45 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 26 Mar 2018 13:09:38 +0000 (15:09 +0200)
This function returns a string with the currently in-use implementation
of the crc32c algorithm, i.e crc32c-generic (for unoptimised, generic
implementation) or crc32c-intel for the sse optimised version. This
will be used by btrfs.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
[ use crypto_shash_driver_name as suggested by Herbert ]
Signed-off-by: David Sterba <dsterba@suse.com>
include/linux/crc32c.h
lib/libcrc32c.c

index 357ae46..bd21af8 100644 (file)
@@ -5,6 +5,7 @@
 #include <linux/types.h>
 
 extern u32 crc32c(u32 crc, const void *address, unsigned int length);
+extern const char *crc32c_impl(void);
 
 /* This macro exists for backwards-compatibility. */
 #define crc32c_le crc32c
index 9f79547..f0a2934 100644 (file)
@@ -71,6 +71,12 @@ static void __exit libcrc32c_mod_fini(void)
        crypto_free_shash(tfm);
 }
 
+const char *crc32c_impl(void)
+{
+       return crypto_shash_driver_name(tfm);
+}
+EXPORT_SYMBOL(crc32c_impl);
+
 module_init(libcrc32c_mod_init);
 module_exit(libcrc32c_mod_fini);