You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
787 B
30 lines
787 B
/////////////////////////////////////////////////////////////////////////////// |
|
// |
|
/// \file crc_macros.h |
|
/// \brief Some endian-dependent macros for CRC32 and CRC64 |
|
// |
|
// Author: Lasse Collin |
|
// |
|
// This file has been put into the public domain. |
|
// You can do whatever you want with this file. |
|
// |
|
/////////////////////////////////////////////////////////////////////////////// |
|
|
|
#ifdef WORDS_BIGENDIAN |
|
# define A(x) ((x) >> 24) |
|
# define B(x) (((x) >> 16) & 0xFF) |
|
# define C(x) (((x) >> 8) & 0xFF) |
|
# define D(x) ((x) & 0xFF) |
|
|
|
# define S8(x) ((x) << 8) |
|
# define S32(x) ((x) << 32) |
|
|
|
#else |
|
# define A(x) ((x) & 0xFF) |
|
# define B(x) (((x) >> 8) & 0xFF) |
|
# define C(x) (((x) >> 16) & 0xFF) |
|
# define D(x) ((x) >> 24) |
|
|
|
# define S8(x) ((x) >> 8) |
|
# define S32(x) ((x) >> 32) |
|
#endif
|
|
|