aboutsummaryrefslogtreecommitdiff
path: root/src/liblzma/check/crc_common.h
diff options
context:
space:
mode:
authorHans Jansen <hansjansen162@outlook.com>2023-10-12 19:07:50 +0200
committerJia Tan <jiat0218@gmail.com>2023-10-13 20:54:05 +0800
commit233885a437f8b55a5c8442984ebc0aaa579e92de (patch)
treeef1c54ff46a79c3a4f87accfdfb185f5497260ee /src/liblzma/check/crc_common.h
parentCI: Bump and ref actions by commit SHA in windows-ci.yml (diff)
downloadxz-233885a437f8b55a5c8442984ebc0aaa579e92de.tar.xz
liblzma: Rename crc_macros.h to crc_common.h.
Diffstat (limited to 'src/liblzma/check/crc_common.h')
-rw-r--r--src/liblzma/check/crc_common.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/liblzma/check/crc_common.h b/src/liblzma/check/crc_common.h
new file mode 100644
index 00000000..f3ee205d
--- /dev/null
+++ b/src/liblzma/check/crc_common.h
@@ -0,0 +1,30 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+/// \file crc_common.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