10c16b537SWarner Losh /* 237f1f268SConrad Meyer * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. 30c16b537SWarner Losh * All rights reserved. 40c16b537SWarner Losh * 50c16b537SWarner Losh * This source code is licensed under both the BSD-style license (found in the 60c16b537SWarner Losh * LICENSE file in the root directory of this source tree) and the GPLv2 (found 70c16b537SWarner Losh * in the COPYING file in the root directory of this source tree). 80c16b537SWarner Losh * You may select, at your option, one of the above-listed licenses. 90c16b537SWarner Losh */ 100c16b537SWarner Losh 110c16b537SWarner Losh #ifndef ZSTD_LAZY_H 120c16b537SWarner Losh #define ZSTD_LAZY_H 130c16b537SWarner Losh 140c16b537SWarner Losh #if defined (__cplusplus) 150c16b537SWarner Losh extern "C" { 160c16b537SWarner Losh #endif 170c16b537SWarner Losh 1819fcbaf1SConrad Meyer #include "zstd_compress_internal.h" 19052d3c12SConrad Meyer 20*f7cd7fe5SConrad Meyer /** 21*f7cd7fe5SConrad Meyer * Dedicated Dictionary Search Structure bucket log. In the 22*f7cd7fe5SConrad Meyer * ZSTD_dedicatedDictSearch mode, the hashTable has 23*f7cd7fe5SConrad Meyer * 2 ** ZSTD_LAZY_DDSS_BUCKET_LOG entries in each bucket, rather than just 24*f7cd7fe5SConrad Meyer * one. 25*f7cd7fe5SConrad Meyer */ 26*f7cd7fe5SConrad Meyer #define ZSTD_LAZY_DDSS_BUCKET_LOG 2 27*f7cd7fe5SConrad Meyer 280f743729SConrad Meyer U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip); 290c16b537SWarner Losh 30*f7cd7fe5SConrad Meyer void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip); 31*f7cd7fe5SConrad Meyer 322b9c00cbSConrad Meyer void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue); /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */ 330c16b537SWarner Losh 3419fcbaf1SConrad Meyer size_t ZSTD_compressBlock_btlazy2( 3519fcbaf1SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 360f743729SConrad Meyer void const* src, size_t srcSize); 3719fcbaf1SConrad Meyer size_t ZSTD_compressBlock_lazy2( 3819fcbaf1SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 390f743729SConrad Meyer void const* src, size_t srcSize); 4019fcbaf1SConrad Meyer size_t ZSTD_compressBlock_lazy( 4119fcbaf1SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 420f743729SConrad Meyer void const* src, size_t srcSize); 4319fcbaf1SConrad Meyer size_t ZSTD_compressBlock_greedy( 4419fcbaf1SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 450f743729SConrad Meyer void const* src, size_t srcSize); 460f743729SConrad Meyer 470f743729SConrad Meyer size_t ZSTD_compressBlock_btlazy2_dictMatchState( 480f743729SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 490f743729SConrad Meyer void const* src, size_t srcSize); 500f743729SConrad Meyer size_t ZSTD_compressBlock_lazy2_dictMatchState( 510f743729SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 520f743729SConrad Meyer void const* src, size_t srcSize); 530f743729SConrad Meyer size_t ZSTD_compressBlock_lazy_dictMatchState( 540f743729SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 550f743729SConrad Meyer void const* src, size_t srcSize); 560f743729SConrad Meyer size_t ZSTD_compressBlock_greedy_dictMatchState( 570f743729SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 580f743729SConrad Meyer void const* src, size_t srcSize); 5919fcbaf1SConrad Meyer 60*f7cd7fe5SConrad Meyer size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch( 61*f7cd7fe5SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 62*f7cd7fe5SConrad Meyer void const* src, size_t srcSize); 63*f7cd7fe5SConrad Meyer size_t ZSTD_compressBlock_lazy_dedicatedDictSearch( 64*f7cd7fe5SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 65*f7cd7fe5SConrad Meyer void const* src, size_t srcSize); 66*f7cd7fe5SConrad Meyer size_t ZSTD_compressBlock_greedy_dedicatedDictSearch( 67*f7cd7fe5SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 68*f7cd7fe5SConrad Meyer void const* src, size_t srcSize); 69*f7cd7fe5SConrad Meyer 7019fcbaf1SConrad Meyer size_t ZSTD_compressBlock_greedy_extDict( 7119fcbaf1SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 720f743729SConrad Meyer void const* src, size_t srcSize); 7319fcbaf1SConrad Meyer size_t ZSTD_compressBlock_lazy_extDict( 7419fcbaf1SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 750f743729SConrad Meyer void const* src, size_t srcSize); 7619fcbaf1SConrad Meyer size_t ZSTD_compressBlock_lazy2_extDict( 7719fcbaf1SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 780f743729SConrad Meyer void const* src, size_t srcSize); 7919fcbaf1SConrad Meyer size_t ZSTD_compressBlock_btlazy2_extDict( 8019fcbaf1SConrad Meyer ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 810f743729SConrad Meyer void const* src, size_t srcSize); 820c16b537SWarner Losh 830c16b537SWarner Losh #if defined (__cplusplus) 840c16b537SWarner Losh } 850c16b537SWarner Losh #endif 860c16b537SWarner Losh 870c16b537SWarner Losh #endif /* ZSTD_LAZY_H */ 88