hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/lib/lzo/lzodefs.h
....@@ -13,9 +13,15 @@
1313 */
1414
1515
16
+/* Version
17
+ * 0: original lzo version
18
+ * 1: lzo with support for RLE
19
+ */
20
+#define LZO_VERSION 1
21
+
1622 #define COPY4(dst, src) \
1723 put_unaligned(get_unaligned((const u32 *)(src)), (u32 *)(dst))
18
-#if defined(__x86_64__)
24
+#if defined(CONFIG_X86_64) || defined(CONFIG_ARM64)
1925 #define COPY8(dst, src) \
2026 put_unaligned(get_unaligned((const u64 *)(src)), (u64 *)(dst))
2127 #else
....@@ -25,19 +31,21 @@
2531
2632 #if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN)
2733 #error "conflicting endian definitions"
28
-#elif defined(__x86_64__)
34
+#elif defined(CONFIG_X86_64) || defined(CONFIG_ARM64)
2935 #define LZO_USE_CTZ64 1
3036 #define LZO_USE_CTZ32 1
31
-#elif defined(__i386__) || defined(__powerpc__)
37
+#define LZO_FAST_64BIT_MEMORY_ACCESS
38
+#elif defined(CONFIG_X86) || defined(CONFIG_PPC)
3239 #define LZO_USE_CTZ32 1
33
-#elif defined(__arm__) && (__LINUX_ARM_ARCH__ >= 5)
40
+#elif defined(CONFIG_ARM) && (__LINUX_ARM_ARCH__ >= 5)
3441 #define LZO_USE_CTZ32 1
3542 #endif
3643
3744 #define M1_MAX_OFFSET 0x0400
3845 #define M2_MAX_OFFSET 0x0800
3946 #define M3_MAX_OFFSET 0x4000
40
-#define M4_MAX_OFFSET 0xbfff
47
+#define M4_MAX_OFFSET_V0 0xbfff
48
+#define M4_MAX_OFFSET_V1 0xbffe
4149
4250 #define M1_MIN_LEN 2
4351 #define M1_MAX_LEN 2
....@@ -53,6 +61,9 @@
5361 #define M3_MARKER 32
5462 #define M4_MARKER 16
5563
64
+#define MIN_ZERO_RUN_LENGTH 4
65
+#define MAX_ZERO_RUN_LENGTH (2047 + MIN_ZERO_RUN_LENGTH)
66
+
5667 #define lzo_dict_t unsigned short
5768 #define D_BITS 13
5869 #define D_SIZE (1u << D_BITS)