diff options
author | Nikolay Borisov <nborisov@suse.com> | 2018-01-08 04:45:04 -0500 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-03-26 09:09:38 -0400 |
commit | df91f56adce1fc131e05368a0ad0ea72afd9a79a (patch) | |
tree | 2406ccfaa0fb50877c45d2cdca364a1f3c2f48c0 | |
parent | 3e72ee8874f42ddbe72a090044f7c03740158183 (diff) |
libcrc32c: Add crc32c_impl function
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>
-rw-r--r-- | include/linux/crc32c.h | 1 | ||||
-rw-r--r-- | lib/libcrc32c.c | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/crc32c.h b/include/linux/crc32c.h index 357ae4611a45..bd21af828ff6 100644 --- a/include/linux/crc32c.h +++ b/include/linux/crc32c.h | |||
@@ -5,6 +5,7 @@ | |||
5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
6 | 6 | ||
7 | extern u32 crc32c(u32 crc, const void *address, unsigned int length); | 7 | extern u32 crc32c(u32 crc, const void *address, unsigned int length); |
8 | extern const char *crc32c_impl(void); | ||
8 | 9 | ||
9 | /* This macro exists for backwards-compatibility. */ | 10 | /* This macro exists for backwards-compatibility. */ |
10 | #define crc32c_le crc32c | 11 | #define crc32c_le crc32c |
diff --git a/lib/libcrc32c.c b/lib/libcrc32c.c index 9f79547d1b97..f0a2934605bf 100644 --- a/lib/libcrc32c.c +++ b/lib/libcrc32c.c | |||
@@ -71,6 +71,12 @@ static void __exit libcrc32c_mod_fini(void) | |||
71 | crypto_free_shash(tfm); | 71 | crypto_free_shash(tfm); |
72 | } | 72 | } |
73 | 73 | ||
74 | const char *crc32c_impl(void) | ||
75 | { | ||
76 | return crypto_shash_driver_name(tfm); | ||
77 | } | ||
78 | EXPORT_SYMBOL(crc32c_impl); | ||
79 | |||
74 | module_init(libcrc32c_mod_init); | 80 | module_init(libcrc32c_mod_init); |
75 | module_exit(libcrc32c_mod_fini); | 81 | module_exit(libcrc32c_mod_fini); |
76 | 82 | ||