Commit 7b5aaaa5 authored by Marko Mäkelä's avatar Marko Mäkelä

Fix the build on big-endian systems

parents bd6afd8b c6db115c
...@@ -215,21 +215,6 @@ ut_crc32_64_low_hw( ...@@ -215,21 +215,6 @@ ut_crc32_64_low_hw(
return(static_cast<uint32_t>(crc_64bit)); 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. /** 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, @param[in,out] crc crc32 checksum so far when this function is called,
when the function ends it will contain the new checksum when the function ends it will contain the new checksum
...@@ -405,6 +390,23 @@ ut_crc32_8_sw( ...@@ -405,6 +390,23 @@ ut_crc32_8_sw(
(*len)--; (*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. /** Calculate CRC32 over a 64-bit integer using a software implementation.
@param[in] crc crc32 checksum so far @param[in] crc crc32 checksum so far
@param[in] data data to be checksummed @param[in] data data to be checksummed
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment