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