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