]> wimlib.net Git - wimlib/blob - include/wimlib/lz_hash.h
Separate suffix array match-finder from LZX compressor
[wimlib] / include / wimlib / lz_hash.h
1 #ifndef _WIMLIB_LZ_HASH_H
2 #define _WIMLIB_LZ_HASH_H
3
4 #include "wimlib/compress_common.h"
5
6 struct lz_params {
7         unsigned min_match;
8         unsigned max_match;
9         unsigned max_offset;
10         unsigned nice_match;
11         unsigned good_match;
12         unsigned max_chain_len;
13         unsigned max_lazy_match;
14         unsigned too_far;
15 };
16
17 typedef void (*lz_record_match_t)(unsigned len, unsigned offset, void *ctx);
18 typedef void (*lz_record_literal_t)(u8 lit, void *ctx);
19
20 extern void
21 lz_analyze_block(const u8 window[restrict],
22                  input_idx_t window_size,
23                  lz_record_match_t record_match,
24                  lz_record_literal_t record_literal,
25                  void *record_ctx,
26                  const struct lz_params *params,
27                  input_idx_t prev_tab[restrict]);
28
29
30 #endif /* _WIMLIB_LZ_HASH_H  */