| /////////////////////////////////////////////////////////////////////////////// |
| // |
| /// \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 |