13#ifndef LZMA_LZ_ENCODER_H
14#define LZMA_LZ_ENCODER_H
22#define IS_ENC_DICT_SIZE_VALID(size) \
23 ((size) >= LZMA_DICT_SIZE_MIN \
24 && (size) <= (UINT32_C(1) << 30) + (UINT32_C(1) << 29))
151 size_t match_len_max;
164 const uint8_t *preset_dict;
170 uint32_t preset_dict_size;
210 size_t *restrict
out_pos,
size_t out_size);
236static inline uint32_t
239 return (uint32_t)match_finder & 0x0F;
244static inline const uint8_t *
252static inline uint32_t
261static inline uint32_t
275static inline uint32_t
283#define mf_find lzma_mf_find
291mf_skip(
lzma_mf *mf, uint32_t amount)
294 mf->
skip(mf, amount);
303mf_read(
lzma_mf *mf, uint8_t *out,
size_t *
out_pos,
size_t out_size,
306 const size_t out_avail = out_size - *
out_pos;
307 const size_t copy_size =
my_min(out_avail, *
left);
#define assert(condition)
Definition lz4.c:273
Custom functions for memory handling.
Definition base.h:372
Filter options.
Definition filter.h:43
Definition lz_encoder.h:192
Definition lz_decoder.h:47
Definition lz_encoder.h:22
Definition lz_encoder.h:29
uint32_t keep_size_after
Definition lz_encoder.h:51
uint8_t * buffer
Pointer to buffer with data to be compressed.
Definition lz_encoder.h:35
uint32_t * hash
Definition lz_encoder.h:99
uint32_t sons_count
Number of elements in son[].
Definition lz_encoder.h:125
uint32_t match_len_max
Definition lz_encoder.h:114
lzma_action action
Definition lz_encoder.h:119
void(* skip)(lzma_mf *mf, uint32_t num)
Definition lz_encoder.h:97
uint32_t cyclic_pos
Definition lz_encoder.h:101
uint32_t(* find)(lzma_mf *mf, lzma_match *matches)
Definition lz_encoder.h:92
uint32_t read_pos
Definition lz_encoder.h:63
uint32_t offset
Definition lz_encoder.h:58
uint32_t keep_size_before
Definition lz_encoder.h:45
uint32_t hash_mask
Definition lz_encoder.h:103
uint32_t read_ahead
Definition lz_encoder.h:67
uint32_t pending
Definition lz_encoder.h:84
uint32_t read_limit
Definition lz_encoder.h:75
uint32_t hash_count
Number of elements in hash[].
Definition lz_encoder.h:122
uint32_t write_pos
Definition lz_encoder.h:80
uint32_t size
Definition lz_encoder.h:39
uint32_t * son
Definition lz_encoder.h:100
uint32_t nice_len
Maximum length of a match that the match finder will try to find.
Definition lz_encoder.h:109
uint32_t cyclic_size
Definition lz_encoder.h:102
uint32_t depth
Maximum number of loops in the match finder.
Definition lz_encoder.h:106
Hold data and function pointers of the next filter in the chain.
Definition common.h:195
size_t * left
Definition util.h:104
lzma_ret
Return values used by several functions in liblzma.
Definition base.h:57
lzma_action
The ‘action’ argument for lzma_code()
Definition base.h:250
const lzma_allocator const uint8_t size_t uint8_t size_t * out_pos
Definition block.h:528
const lzma_allocator const uint8_t size_t uint8_t * out
Definition block.h:528
const lzma_allocator * allocator
Definition block.h:377
const lzma_filter * filters
Definition container.h:315
lzma_match_finder
Match finders.
Definition lzma12.h:58
uint64_t lzma_vli
Variable-length integer type.
Definition vli.h:63
#define my_min(x, y)
Definition sysdefs.h:185
uint64_t uint64_t uncomp_size
Definition container.h:903
uint64_t uint64_t lzma_bool uint32_t dict_size
Definition container.h:904
const lzma_options_lzma * options
Definition container.h:545
static uint32_t const uint8_t uint32_t len
Definition memcmplen.h:44
void lzma_mf_hc4_skip(lzma_mf *dict, uint32_t amount)
uint32_t lzma_mf_hc3_find(lzma_mf *dict, lzma_match *matches)
uint32_t lzma_mf_bt2_find(lzma_mf *dict, lzma_match *matches)
uint32_t lzma_mf_bt3_find(lzma_mf *dict, lzma_match *matches)
uint32_t lzma_mf_find(lzma_mf *mf, uint32_t *count, lzma_match *matches)
Find matches starting from the current byte.
Definition lz_encoder_mf.c:23
uint32_t lzma_mf_bt4_find(lzma_mf *dict, lzma_match *matches)
void lzma_mf_bt2_skip(lzma_mf *dict, uint32_t amount)
uint64_t lzma_lz_encoder_memusage(const lzma_lz_options *lz_options)
Definition lz_encoder.c:468
void lzma_mf_bt3_skip(lzma_mf *dict, uint32_t amount)
lzma_ret lzma_lz_encoder_init(lzma_next_coder *next, const lzma_allocator *allocator, const lzma_filter_info *filters, lzma_ret(*lz_init)(lzma_lz_encoder *lz, const lzma_allocator *allocator, lzma_vli id, const void *options, lzma_lz_options *lz_options))
Definition lz_encoder.c:544
void lzma_mf_hc3_skip(lzma_mf *dict, uint32_t amount)
void lzma_mf_bt4_skip(lzma_mf *dict, uint32_t amount)
uint32_t lzma_mf_hc4_find(lzma_mf *dict, lzma_match *matches)
const void * dict
Definition zbuff.h:76