/* SPDX-License-Identifier: GPL-2.0 */
/*
* lzodefs . h - - architecture , OS and compiler specific defines
*
* Copyright ( C ) 1996 - 2012 Markus F . X . J . Oberhumer < markus @ oberhumer . com >
*
* The full LZO package can be found at :
* http : //www.oberhumer.com/opensource/lzo/
*
* Changed for Linux kernel use by :
* Nitin Gupta < nitingupta910 @ gmail . com >
* Richard Purdie < rpurdie @ openedhand . com >
*/
/* 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 0 x0400
#define M2_MAX_OFFSET 0 x0800
#define M3_MAX_OFFSET 0 x4000
#define M4_MAX_OFFSET_V0 0 xbfff
#define M4_MAX_OFFSET_V1 0 xbffe
#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 (1 u << D_BITS)
#define D_MASK (D_SIZE - 1 )
#define D_HIGH ((D_MASK >> 1 ) + 1 )
Messung V0.5 in Prozent C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-09-29)
¤
*© Formatika GbR, Deutschland