33 lines
807 B
C
33 lines
807 B
C
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
/// \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.
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#include <utils.h>
|
||
|
|
||
|
#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
|