diff options
author | 2025-03-08 22:04:20 +0800 | |
---|---|---|
committer | 2025-03-08 22:04:20 +0800 | |
commit | a07bb8fd1299070229f0e8f3dcb57ffd5ef9870a (patch) | |
tree | 84f21bd0bf7071bc5fc7dd989e77d7ceb5476682 /lib/lzo/lzodefs.h | |
download | ohosKernel-a07bb8fd1299070229f0e8f3dcb57ffd5ef9870a.tar.gz ohosKernel-a07bb8fd1299070229f0e8f3dcb57ffd5ef9870a.zip |
Initial commit: OpenHarmony-v4.0-ReleaseOpenHarmony-v4.0-Release
Diffstat (limited to 'lib/lzo/lzodefs.h')
-rw-r--r-- | lib/lzo/lzodefs.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/lzo/lzodefs.h b/lib/lzo/lzodefs.h new file mode 100644 index 000000000..b60851fcf --- /dev/null +++ b/lib/lzo/lzodefs.h | |||
@@ -0,0 +1,71 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | /* | ||
3 | * lzodefs.h -- architecture, OS and compiler specific defines | ||
4 | * | ||
5 | * Copyright (C) 1996-2012 Markus F.X.J. Oberhumer <markus@oberhumer.com> | ||
6 | * | ||
7 | * The full LZO package can be found at: | ||
8 | * http://www.oberhumer.com/opensource/lzo/ | ||
9 | * | ||
10 | * Changed for Linux kernel use by: | ||
11 | * Nitin Gupta <nitingupta910@gmail.com> | ||
12 | * Richard Purdie <rpurdie@openedhand.com> | ||
13 | */ | ||
14 | |||
15 | |||
16 | /* Version | ||
17 | * 0: original lzo version | ||
18 | * 1: lzo with support for RLE | ||
19 | */ | ||
20 | #define LZO_VERSION 1 | ||
21 | |||
22 | #define COPY4(dst, src) \ | ||
23 | put_unaligned(get_unaligned((const u32 *)(src)), (u32 *)(dst)) | ||
24 | #if defined(CONFIG_X86_64) || defined(CONFIG_ARM64) | ||
25 | #define COPY8(dst, src) \ | ||
26 | put_unaligned(get_unaligned((const u64 *)(src)), (u64 *)(dst)) | ||
27 | #else | ||
28 | #define COPY8(dst, src) \ | ||
29 | COPY4(dst, src); COPY4((dst) + 4, (src) + 4) | ||
30 | #endif | ||
31 | |||
32 | #if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) | ||
33 | #error "conflicting endian definitions" | ||
34 | #elif defined(CONFIG_X86_64) || defined(CONFIG_ARM64) | ||
35 | #define LZO_USE_CTZ64 1 | ||
36 | #define LZO_USE_CTZ32 1 | ||
37 | #define LZO_FAST_64BIT_MEMORY_ACCESS | ||
38 | #elif defined(CONFIG_X86) || defined(CONFIG_PPC) | ||
39 | #define LZO_USE_CTZ32 1 | ||
40 | #elif defined(CONFIG_ARM) && (__LINUX_ARM_ARCH__ >= 5) | ||
41 | #define LZO_USE_CTZ32 1 | ||
42 | #endif | ||
43 | |||
44 | #define M1_MAX_OFFSET 0x0400 | ||
45 | #define M2_MAX_OFFSET 0x0800 | ||
46 | #define M3_MAX_OFFSET 0x4000 | ||
47 | #define M4_MAX_OFFSET_V0 0xbfff | ||
48 | #define M4_MAX_OFFSET_V1 0xbffe | ||
49 | |||
50 | #define M1_MIN_LEN 2 | ||
51 | #define M1_MAX_LEN 2 | ||
52 | #define M2_MIN_LEN 3 | ||
53 | #define M2_MAX_LEN 8 | ||
54 | #define M3_MIN_LEN 3 | ||
55 | #define M3_MAX_LEN 33 | ||
56 | #define M4_MIN_LEN 3 | ||
57 | #define M4_MAX_LEN 9 | ||
58 | |||
59 | #define M1_MARKER 0 | ||
60 | #define M2_MARKER 64 | ||
61 | #define M3_MARKER 32 | ||
62 | #define M4_MARKER 16 | ||
63 | |||
64 | #define MIN_ZERO_RUN_LENGTH 4 | ||
65 | #define MAX_ZERO_RUN_LENGTH (2047 + MIN_ZERO_RUN_LENGTH) | ||
66 | |||
67 | #define lzo_dict_t unsigned short | ||
68 | #define D_BITS 13 | ||
69 | #define D_SIZE (1u << D_BITS) | ||
70 | #define D_MASK (D_SIZE - 1) | ||
71 | #define D_HIGH ((D_MASK >> 1) + 1) | ||