]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/xz/src/liblzma/check/crc_macros.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / xz / src / liblzma / check / crc_macros.h
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