.. | .. |
---|
13 | 13 | */ |
---|
14 | 14 | |
---|
15 | 15 | |
---|
| 16 | +/* Version |
---|
| 17 | + * 0: original lzo version |
---|
| 18 | + * 1: lzo with support for RLE |
---|
| 19 | + */ |
---|
| 20 | +#define LZO_VERSION 1 |
---|
| 21 | + |
---|
16 | 22 | #define COPY4(dst, src) \ |
---|
17 | 23 | put_unaligned(get_unaligned((const u32 *)(src)), (u32 *)(dst)) |
---|
18 | | -#if defined(__x86_64__) |
---|
| 24 | +#if defined(CONFIG_X86_64) || defined(CONFIG_ARM64) |
---|
19 | 25 | #define COPY8(dst, src) \ |
---|
20 | 26 | put_unaligned(get_unaligned((const u64 *)(src)), (u64 *)(dst)) |
---|
21 | 27 | #else |
---|
.. | .. |
---|
25 | 31 | |
---|
26 | 32 | #if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) |
---|
27 | 33 | #error "conflicting endian definitions" |
---|
28 | | -#elif defined(__x86_64__) |
---|
| 34 | +#elif defined(CONFIG_X86_64) || defined(CONFIG_ARM64) |
---|
29 | 35 | #define LZO_USE_CTZ64 1 |
---|
30 | 36 | #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) |
---|
32 | 39 | #define LZO_USE_CTZ32 1 |
---|
33 | | -#elif defined(__arm__) && (__LINUX_ARM_ARCH__ >= 5) |
---|
| 40 | +#elif defined(CONFIG_ARM) && (__LINUX_ARM_ARCH__ >= 5) |
---|
34 | 41 | #define LZO_USE_CTZ32 1 |
---|
35 | 42 | #endif |
---|
36 | 43 | |
---|
37 | 44 | #define M1_MAX_OFFSET 0x0400 |
---|
38 | 45 | #define M2_MAX_OFFSET 0x0800 |
---|
39 | 46 | #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 |
---|
41 | 49 | |
---|
42 | 50 | #define M1_MIN_LEN 2 |
---|
43 | 51 | #define M1_MAX_LEN 2 |
---|
.. | .. |
---|
53 | 61 | #define M3_MARKER 32 |
---|
54 | 62 | #define M4_MARKER 16 |
---|
55 | 63 | |
---|
| 64 | +#define MIN_ZERO_RUN_LENGTH 4 |
---|
| 65 | +#define MAX_ZERO_RUN_LENGTH (2047 + MIN_ZERO_RUN_LENGTH) |
---|
| 66 | + |
---|
56 | 67 | #define lzo_dict_t unsigned short |
---|
57 | 68 | #define D_BITS 13 |
---|
58 | 69 | #define D_SIZE (1u << D_BITS) |
---|