diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/checksum/power8/crc32_wrapper.c')
-rw-r--r-- | src/third_party/wiredtiger/src/checksum/power8/crc32_wrapper.c | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/src/third_party/wiredtiger/src/checksum/power8/crc32_wrapper.c b/src/third_party/wiredtiger/src/checksum/power8/crc32_wrapper.c index 62bd3e64f5c..ddfa2bdaeb8 100644 --- a/src/third_party/wiredtiger/src/checksum/power8/crc32_wrapper.c +++ b/src/third_party/wiredtiger/src/checksum/power8/crc32_wrapper.c @@ -6,7 +6,7 @@ #define VMX_ALIGN_MASK (VMX_ALIGN-1) #ifdef REFLECT -static unsigned int crc32_align(unsigned int crc, unsigned char *p, +static unsigned int crc32_align(unsigned int crc, const unsigned char *p, unsigned long len) { while (len--) @@ -14,7 +14,7 @@ static unsigned int crc32_align(unsigned int crc, unsigned char *p, return crc; } #else -static unsigned int crc32_align(unsigned int crc, unsigned char *p, +static unsigned int crc32_align(unsigned int crc, const unsigned char *p, unsigned long len) { while (len--) @@ -23,13 +23,13 @@ static unsigned int crc32_align(unsigned int crc, unsigned char *p, } #endif -unsigned int __crc32_vpmsum(unsigned int crc, unsigned char *p, +unsigned int __crc32_vpmsum(unsigned int crc, const unsigned char *p, unsigned long len); /* -Werror=missing-prototypes */ -unsigned int crc32_vpmsum(unsigned int crc, unsigned char *p, +unsigned int crc32_vpmsum(unsigned int crc, const unsigned char *p, unsigned long len); -unsigned int crc32_vpmsum(unsigned int crc, unsigned char *p, +unsigned int crc32_vpmsum(unsigned int crc, const unsigned char *p, unsigned long len) { unsigned int prealign; @@ -67,3 +67,29 @@ out: return crc; } #endif + +#include "wt_internal.h" + +/* + * __wt_checksum_hw -- + * WiredTiger: return a checksum for a chunk of memory. + */ +static uint32_t +__wt_checksum_hw(const void *chunk, size_t len) +{ + return (crc32_vpmsum(0, chunk, len)); +} + +/* + * __wt_checksum_init -- + * WiredTiger: detect CRC hardware and set the checksum function. + */ +void +__wt_checksum_init(void) +{ +#if defined(HAVE_CRC32_HARDWARE) + __wt_process.checksum = __wt_checksum_hw; +#else + __wt_process.checksum = __wt_checksum_sw; +#endif +} |