1/////////////////////////////////////////////////////////////////////////////// 2// 3/// \file crc_macros.h 4/// \brief Some endian-dependent macros for CRC32 and CRC64 5// 6// Author: Lasse Collin 7// 8// This file has been put into the public domain. 9// You can do whatever you want with this file. 10// 11/////////////////////////////////////////////////////////////////////////////// 12 13#ifdef WORDS_BIGENDIAN 14# define A(x) ((x) >> 24) 15# define B(x) (((x) >> 16) & 0xFF) 16# define C(x) (((x) >> 8) & 0xFF) 17# define D(x) ((x) & 0xFF) 18 19# define S8(x) ((x) << 8) 20# define S32(x) ((x) << 32) 21 22#else 23# define A(x) ((x) & 0xFF) 24# define B(x) (((x) >> 8) & 0xFF) 25# define C(x) (((x) >> 16) & 0xFF) 26# define D(x) ((x) >> 24) 27 28# define S8(x) ((x) >> 8) 29# define S32(x) ((x) >> 32) 30#endif 31