1*a28cd43dSSascha Wildner /* 2*a28cd43dSSascha Wildner * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. 3*a28cd43dSSascha Wildner * All rights reserved. 4*a28cd43dSSascha Wildner * 5*a28cd43dSSascha Wildner * This source code is licensed under both the BSD-style license (found in the 6*a28cd43dSSascha Wildner * LICENSE file in the root directory of this source tree) and the GPLv2 (found 7*a28cd43dSSascha Wildner * in the COPYING file in the root directory of this source tree). 8*a28cd43dSSascha Wildner * You may select, at your option, one of the above-listed licenses. 9*a28cd43dSSascha Wildner */ 10*a28cd43dSSascha Wildner 11*a28cd43dSSascha Wildner #ifndef ZSTD_LAZY_H 12*a28cd43dSSascha Wildner #define ZSTD_LAZY_H 13*a28cd43dSSascha Wildner 14*a28cd43dSSascha Wildner #if defined (__cplusplus) 15*a28cd43dSSascha Wildner extern "C" { 16*a28cd43dSSascha Wildner #endif 17*a28cd43dSSascha Wildner 18*a28cd43dSSascha Wildner #include "zstd_compress_internal.h" 19*a28cd43dSSascha Wildner 20*a28cd43dSSascha Wildner /** 21*a28cd43dSSascha Wildner * Dedicated Dictionary Search Structure bucket log. In the 22*a28cd43dSSascha Wildner * ZSTD_dedicatedDictSearch mode, the hashTable has 23*a28cd43dSSascha Wildner * 2 ** ZSTD_LAZY_DDSS_BUCKET_LOG entries in each bucket, rather than just 24*a28cd43dSSascha Wildner * one. 25*a28cd43dSSascha Wildner */ 26*a28cd43dSSascha Wildner #define ZSTD_LAZY_DDSS_BUCKET_LOG 2 27*a28cd43dSSascha Wildner 28*a28cd43dSSascha Wildner U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip); 29*a28cd43dSSascha Wildner 30*a28cd43dSSascha Wildner void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip); 31*a28cd43dSSascha Wildner 32*a28cd43dSSascha Wildner void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue); /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */ 33*a28cd43dSSascha Wildner 34*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_btlazy2( 35*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 36*a28cd43dSSascha Wildner void const* src, size_t srcSize); 37*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_lazy2( 38*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 39*a28cd43dSSascha Wildner void const* src, size_t srcSize); 40*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_lazy( 41*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 42*a28cd43dSSascha Wildner void const* src, size_t srcSize); 43*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_greedy( 44*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 45*a28cd43dSSascha Wildner void const* src, size_t srcSize); 46*a28cd43dSSascha Wildner 47*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_btlazy2_dictMatchState( 48*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 49*a28cd43dSSascha Wildner void const* src, size_t srcSize); 50*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_lazy2_dictMatchState( 51*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 52*a28cd43dSSascha Wildner void const* src, size_t srcSize); 53*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_lazy_dictMatchState( 54*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 55*a28cd43dSSascha Wildner void const* src, size_t srcSize); 56*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_greedy_dictMatchState( 57*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 58*a28cd43dSSascha Wildner void const* src, size_t srcSize); 59*a28cd43dSSascha Wildner 60*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch( 61*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 62*a28cd43dSSascha Wildner void const* src, size_t srcSize); 63*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_lazy_dedicatedDictSearch( 64*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 65*a28cd43dSSascha Wildner void const* src, size_t srcSize); 66*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_greedy_dedicatedDictSearch( 67*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 68*a28cd43dSSascha Wildner void const* src, size_t srcSize); 69*a28cd43dSSascha Wildner 70*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_greedy_extDict( 71*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 72*a28cd43dSSascha Wildner void const* src, size_t srcSize); 73*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_lazy_extDict( 74*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 75*a28cd43dSSascha Wildner void const* src, size_t srcSize); 76*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_lazy2_extDict( 77*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 78*a28cd43dSSascha Wildner void const* src, size_t srcSize); 79*a28cd43dSSascha Wildner size_t ZSTD_compressBlock_btlazy2_extDict( 80*a28cd43dSSascha Wildner ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], 81*a28cd43dSSascha Wildner void const* src, size_t srcSize); 82*a28cd43dSSascha Wildner 83*a28cd43dSSascha Wildner #if defined (__cplusplus) 84*a28cd43dSSascha Wildner } 85*a28cd43dSSascha Wildner #endif 86*a28cd43dSSascha Wildner 87*a28cd43dSSascha Wildner #endif /* ZSTD_LAZY_H */ 88