Lines Matching refs:mf

26 	lzma_mf mf;  member
41 move_window(lzma_mf *mf) in move_window() argument
47 assert(mf->read_pos > mf->keep_size_before); in move_window()
49 = (mf->read_pos - mf->keep_size_before) & ~UINT32_C(15); in move_window()
51 assert(mf->write_pos > move_offset); in move_window()
52 const size_t move_size = mf->write_pos - move_offset; in move_window()
54 assert(move_offset + move_size <= mf->size); in move_window()
56 memmove(mf->buffer, mf->buffer + move_offset, move_size); in move_window()
58 mf->offset += move_offset; in move_window()
59 mf->read_pos -= move_offset; in move_window()
60 mf->read_limit -= move_offset; in move_window()
61 mf->write_pos -= move_offset; in move_window()
79 assert(coder->mf.read_pos <= coder->mf.write_pos); in fill_window()
82 if (coder->mf.read_pos >= coder->mf.size - coder->mf.keep_size_after) in fill_window()
83 move_window(&coder->mf); in fill_window()
88 size_t write_pos = coder->mf.write_pos; in fill_window()
93 in_used = lzma_bufcpy(in, in_pos, in_size, coder->mf.buffer, in fill_window()
94 &write_pos, coder->mf.size); in fill_window()
103 coder->mf.buffer, &write_pos, in fill_window()
104 coder->mf.size, action); in fill_window()
108 coder->mf.write_pos = write_pos; in fill_window()
117 coder->mf.action = action; in fill_window()
118 coder->mf.read_limit = coder->mf.write_pos; in fill_window()
120 } else if (coder->mf.write_pos > coder->mf.keep_size_after) { in fill_window()
124 coder->mf.read_limit = coder->mf.write_pos in fill_window()
125 - coder->mf.keep_size_after; in fill_window()
129 if (coder->mf.pending > 0 in fill_window()
130 && coder->mf.read_pos < coder->mf.read_limit) { in fill_window()
133 const size_t pending = coder->mf.pending; in fill_window()
134 coder->mf.pending = 0; in fill_window()
138 assert(coder->mf.read_pos >= pending); in fill_window()
139 coder->mf.read_pos -= pending; in fill_window()
143 coder->mf.skip(&coder->mf, pending); in fill_window()
160 if (coder->mf.action == LZMA_RUN && coder->mf.read_pos in lz_encode()
161 >= coder->mf.read_limit) in lz_encode()
167 &coder->mf, out, out_pos, out_size); in lz_encode()
172 coder->mf.action = LZMA_RUN; in lz_encode()
182 lz_encoder_prepare(lzma_mf *mf, lzma_allocator *allocator, in lz_encoder_prepare() argument
194 mf->keep_size_before = lz_options->before_size + lz_options->dict_size; in lz_encoder_prepare()
196 mf->keep_size_after = lz_options->after_size in lz_encoder_prepare()
217 const uint32_t old_size = mf->size; in lz_encoder_prepare()
218 mf->size = mf->keep_size_before + reserve + mf->keep_size_after; in lz_encoder_prepare()
222 if (mf->buffer != NULL && old_size != mf->size) { in lz_encoder_prepare()
223 lzma_free(mf->buffer, allocator); in lz_encoder_prepare()
224 mf->buffer = NULL; in lz_encoder_prepare()
228 mf->match_len_max = lz_options->match_len_max; in lz_encoder_prepare()
229 mf->nice_len = lz_options->nice_len; in lz_encoder_prepare()
246 mf->cyclic_size = lz_options->dict_size + 1; in lz_encoder_prepare()
252 mf->find = &lzma_mf_hc3_find; in lz_encoder_prepare()
253 mf->skip = &lzma_mf_hc3_skip; in lz_encoder_prepare()
258 mf->find = &lzma_mf_hc4_find; in lz_encoder_prepare()
259 mf->skip = &lzma_mf_hc4_skip; in lz_encoder_prepare()
264 mf->find = &lzma_mf_bt2_find; in lz_encoder_prepare()
265 mf->skip = &lzma_mf_bt2_skip; in lz_encoder_prepare()
270 mf->find = &lzma_mf_bt3_find; in lz_encoder_prepare()
271 mf->skip = &lzma_mf_bt3_skip; in lz_encoder_prepare()
276 mf->find = &lzma_mf_bt4_find; in lz_encoder_prepare()
277 mf->skip = &lzma_mf_bt4_skip; in lz_encoder_prepare()
288 if (hash_bytes > mf->nice_len) in lz_encoder_prepare()
315 mf->hash_mask = hs; in lz_encoder_prepare()
334 const uint32_t old_count = mf->hash_size_sum + mf->sons_count; in lz_encoder_prepare()
335 mf->hash_size_sum = hs; in lz_encoder_prepare()
336 mf->sons_count = mf->cyclic_size; in lz_encoder_prepare()
338 mf->sons_count *= 2; in lz_encoder_prepare()
340 const uint32_t new_count = mf->hash_size_sum + mf->sons_count; in lz_encoder_prepare()
344 if (mf->hash != NULL && old_count != new_count) { in lz_encoder_prepare()
345 lzma_free(mf->hash, allocator); in lz_encoder_prepare()
346 mf->hash = NULL; in lz_encoder_prepare()
350 mf->depth = lz_options->depth; in lz_encoder_prepare()
351 if (mf->depth == 0) { in lz_encoder_prepare()
352 mf->depth = 16 + (mf->nice_len / 2); in lz_encoder_prepare()
354 mf->depth /= 2; in lz_encoder_prepare()
362 lz_encoder_init(lzma_mf *mf, lzma_allocator *allocator, in lz_encoder_init() argument
366 if (mf->buffer == NULL) { in lz_encoder_init()
367 mf->buffer = lzma_alloc(mf->size, allocator); in lz_encoder_init()
368 if (mf->buffer == NULL) in lz_encoder_init()
376 mf->offset = mf->cyclic_size; in lz_encoder_init()
377 mf->read_pos = 0; in lz_encoder_init()
378 mf->read_ahead = 0; in lz_encoder_init()
379 mf->read_limit = 0; in lz_encoder_init()
380 mf->write_pos = 0; in lz_encoder_init()
381 mf->pending = 0; in lz_encoder_init()
384 const size_t alloc_count = mf->hash_size_sum + mf->sons_count; in lz_encoder_init()
393 if (mf->hash == NULL) { in lz_encoder_init()
394 mf->hash = lzma_alloc(alloc_count * sizeof(uint32_t), in lz_encoder_init()
396 if (mf->hash == NULL) in lz_encoder_init()
400 mf->son = mf->hash + mf->hash_size_sum; in lz_encoder_init()
401 mf->cyclic_pos = 0; in lz_encoder_init()
409 memzero(mf->hash, (size_t)(mf->hash_size_sum) * sizeof(uint32_t)); in lz_encoder_init()
426 mf->write_pos = MIN(lz_options->preset_dict_size, mf->size); in lz_encoder_init()
427 memcpy(mf->buffer, lz_options->preset_dict in lz_encoder_init()
428 + lz_options->preset_dict_size - mf->write_pos, in lz_encoder_init()
429 mf->write_pos); in lz_encoder_init()
430 mf->action = LZMA_SYNC_FLUSH; in lz_encoder_init()
431 mf->skip(mf, mf->write_pos); in lz_encoder_init()
434 mf->action = LZMA_RUN; in lz_encoder_init()
444 lzma_mf mf = { in lzma_lz_encoder_memusage() local
450 if (lz_encoder_prepare(&mf, NULL, lz_options)) in lzma_lz_encoder_memusage()
454 return (uint64_t)(mf.hash_size_sum + mf.sons_count) in lzma_lz_encoder_memusage()
456 + (uint64_t)(mf.size) + sizeof(lzma_coder); in lzma_lz_encoder_memusage()
465 lzma_free(coder->mf.hash, allocator); in lz_encoder_end()
466 lzma_free(coder->mf.buffer, allocator); in lz_encoder_end()
503 next->coder->mf.buffer = NULL; in lzma_lz_encoder_init()
504 next->coder->mf.hash = NULL; in lzma_lz_encoder_init()
516 if (lz_encoder_prepare(&next->coder->mf, allocator, &lz_options)) in lzma_lz_encoder_init()
521 if (lz_encoder_init(&next->coder->mf, allocator, &lz_options)) in lzma_lz_encoder_init()
531 lzma_mf_is_supported(lzma_match_finder mf) in lzma_mf_is_supported() argument
536 if (mf == LZMA_MF_HC3) in lzma_mf_is_supported()
541 if (mf == LZMA_MF_HC4) in lzma_mf_is_supported()
546 if (mf == LZMA_MF_BT2) in lzma_mf_is_supported()
551 if (mf == LZMA_MF_BT3) in lzma_mf_is_supported()
556 if (mf == LZMA_MF_BT4) in lzma_mf_is_supported()