| .. | .. |
|---|
| 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) |
|---|