diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-03-17 07:51:53 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-03-17 07:51:53 +0200 |
commit | 7b5aaaa554aa1b8ccfa1c437a0612baf01845169 (patch) | |
tree | 30eaa3cf6ce5d63a2858d82e1ed3d491b722aa9b | |
parent | bd6afd8b5e21c10a3bd84a5073bbe427015fac07 (diff) | |
parent | c6db115ce66a8c7ec78343feebab2286d431bc24 (diff) | |
download | mariadb-git-7b5aaaa554aa1b8ccfa1c437a0612baf01845169.tar.gz |
Fix the build on big-endian systems
-rw-r--r-- | storage/innobase/ut/ut0crc32.cc | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/storage/innobase/ut/ut0crc32.cc b/storage/innobase/ut/ut0crc32.cc index 3de51217d03..efe6dc0a729 100644 --- a/storage/innobase/ut/ut0crc32.cc +++ b/storage/innobase/ut/ut0crc32.cc @@ -215,21 +215,6 @@ ut_crc32_64_low_hw( return(static_cast<uint32_t>(crc_64bit)); } -/** Swap the byte order of an 8 byte integer. -@param[in] i 8-byte integer -@return 8-byte integer */ -inline uint64_t ut_crc32_swap_byteorder(uint64_t i) -{ - return i << 56 | - (i & 0x000000000000FF00ULL) << 40 | - (i & 0x0000000000FF0000ULL) << 24 | - (i & 0x00000000FF000000ULL) << 8 | - (i & 0x000000FF00000000ULL) >> 8 | - (i & 0x0000FF0000000000ULL) >> 24 | - (i & 0x00FF000000000000ULL) >> 40 | - i >> 56; -} - /** Calculate CRC32 over 64-bit byte string using a hardware/CPU instruction. @param[in,out] crc crc32 checksum so far when this function is called, when the function ends it will contain the new checksum @@ -405,6 +390,23 @@ ut_crc32_8_sw( (*len)--; } +/** Swap the byte order of an 8 byte integer. +@param[in] i 8-byte integer +@return 8-byte integer */ +# ifdef WORDS_BIGENDIAN +inline uint64_t ut_crc32_swap_byteorder(uint64_t i) +{ + return i << 56 | + (i & 0x000000000000FF00ULL) << 40 | + (i & 0x0000000000FF0000ULL) << 24 | + (i & 0x00000000FF000000ULL) << 8 | + (i & 0x000000FF00000000ULL) >> 8 | + (i & 0x0000FF0000000000ULL) >> 24 | + (i & 0x00FF000000000000ULL) >> 40 | + i >> 56; +} +# endif /* WORDS_BIGENDIAN */ + /** Calculate CRC32 over a 64-bit integer using a software implementation. @param[in] crc crc32 checksum so far @param[in] data data to be checksummed |