forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.8 KiB
71 lines
1.8 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
/* |
|
* lzodefs.h -- architecture, OS and compiler specific defines |
|
* |
|
* Copyright (C) 1996-2012 Markus F.X.J. Oberhumer <[email protected]> |
|
* |
|
* The full LZO package can be found at: |
|
* http://www.oberhumer.com/opensource/lzo/ |
|
* |
|
* Changed for Linux kernel use by: |
|
* Nitin Gupta <[email protected]> |
|
* Richard Purdie <[email protected]> |
|
*/ |
|
|
|
|
|
/* Version |
|
* 0: original lzo version |
|
* 1: lzo with support for RLE |
|
*/ |
|
#define LZO_VERSION 1 |
|
|
|
#define COPY4(dst, src) \ |
|
put_unaligned(get_unaligned((const u32 *)(src)), (u32 *)(dst)) |
|
#if defined(CONFIG_X86_64) || defined(CONFIG_ARM64) |
|
#define COPY8(dst, src) \ |
|
put_unaligned(get_unaligned((const u64 *)(src)), (u64 *)(dst)) |
|
#else |
|
#define COPY8(dst, src) \ |
|
COPY4(dst, src); COPY4((dst) + 4, (src) + 4) |
|
#endif |
|
|
|
#if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) |
|
#error "conflicting endian definitions" |
|
#elif defined(CONFIG_X86_64) || defined(CONFIG_ARM64) |
|
#define LZO_USE_CTZ64 1 |
|
#define LZO_USE_CTZ32 1 |
|
#define LZO_FAST_64BIT_MEMORY_ACCESS |
|
#elif defined(CONFIG_X86) || defined(CONFIG_PPC) |
|
#define LZO_USE_CTZ32 1 |
|
#elif defined(CONFIG_ARM) && (__LINUX_ARM_ARCH__ >= 5) |
|
#define LZO_USE_CTZ32 1 |
|
#endif |
|
|
|
#define M1_MAX_OFFSET 0x0400 |
|
#define M2_MAX_OFFSET 0x0800 |
|
#define M3_MAX_OFFSET 0x4000 |
|
#define M4_MAX_OFFSET_V0 0xbfff |
|
#define M4_MAX_OFFSET_V1 0xbffe |
|
|
|
#define M1_MIN_LEN 2 |
|
#define M1_MAX_LEN 2 |
|
#define M2_MIN_LEN 3 |
|
#define M2_MAX_LEN 8 |
|
#define M3_MIN_LEN 3 |
|
#define M3_MAX_LEN 33 |
|
#define M4_MIN_LEN 3 |
|
#define M4_MAX_LEN 9 |
|
|
|
#define M1_MARKER 0 |
|
#define M2_MARKER 64 |
|
#define M3_MARKER 32 |
|
#define M4_MARKER 16 |
|
|
|
#define MIN_ZERO_RUN_LENGTH 4 |
|
#define MAX_ZERO_RUN_LENGTH (2047 + MIN_ZERO_RUN_LENGTH) |
|
|
|
#define lzo_dict_t unsigned short |
|
#define D_BITS 13 |
|
#define D_SIZE (1u << D_BITS) |
|
#define D_MASK (D_SIZE - 1) |
|
#define D_HIGH ((D_MASK >> 1) + 1)
|
|
|