X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=include%2Fwimlib%2Flzms.h;h=15128cb8ff4541b693f7683f4062bd1976600bb7;hb=2e6b4c5e5343353b1edaa695fff0ee4143e65af6;hp=5584b9a4ceb5a27fae756133678743c0a3ae40cc;hpb=60523d25f34692d6f3a7c8bbda88eead17f23b12;p=wimlib diff --git a/include/wimlib/lzms.h b/include/wimlib/lzms.h index 5584b9a4..15128cb8 100644 --- a/include/wimlib/lzms.h +++ b/include/wimlib/lzms.h @@ -1,8 +1,48 @@ #ifndef _WIMLIB_LZMS_H #define _WIMLIB_LZMS_H -int -lzms_decompress(const void *cdata, unsigned clen, void *udata, unsigned unlen, - unsigned window_size); +/* Constants for the LZMS data compression format. See the comments in + * lzms-decompress.c for more information about this format. */ +//#define ENABLE_LZMS_DEBUG +#ifdef ENABLE_LZMS_DEBUG +# define LZMS_DEBUG DEBUG +# define LZMS_ASSERT wimlib_assert +#else +# define LZMS_DEBUG(format, ...) +# define LZMS_ASSERT(...) #endif + +#define LZMS_NUM_RECENT_OFFSETS 3 + +#define LZMS_PROBABILITY_BITS 6 +#define LZMS_PROBABILITY_MAX (1U << LZMS_PROBABILITY_BITS) +#define LZMS_INITIAL_PROBABILITY 48 +#define LZMS_INITIAL_RECENT_BITS 0x0000000055555555ULL + +#define LZMS_NUM_MAIN_STATES 16 +#define LZMS_NUM_MATCH_STATES 32 +#define LZMS_NUM_LZ_MATCH_STATES 64 +#define LZMS_NUM_LZ_REPEAT_MATCH_STATES 64 +#define LZMS_NUM_DELTA_MATCH_STATES 64 +#define LZMS_NUM_DELTA_REPEAT_MATCH_STATES 64 +#define LZMS_MAX_NUM_STATES 64 + +#define LZMS_NUM_LITERAL_SYMS 256 +#define LZMS_NUM_LEN_SYMS 54 +#define LZMS_NUM_DELTA_POWER_SYMS 8 +#define LZMS_MAX_NUM_OFFSET_SYMS 799 +#define LZMS_MAX_NUM_SYMS 799 + +#define LZMS_MAX_CODEWORD_LEN 15 + +#define LZMS_LITERAL_CODE_REBUILD_FREQ 1024 +#define LZMS_LZ_OFFSET_CODE_REBUILD_FREQ 1024 +#define LZMS_LENGTH_CODE_REBUILD_FREQ 512 +#define LZMS_DELTA_OFFSET_CODE_REBUILD_FREQ 1024 +#define LZMS_DELTA_POWER_CODE_REBUILD_FREQ 512 + +#define LZMS_X86_MAX_GOOD_TARGET_OFFSET 65535 +#define LZMS_X86_MAX_TRANSLATION_OFFSET 1023 + +#endif /* _WIMLIB_LZMS_H */