xref: /freebsd/sys/contrib/zstd/lib/compress/zstd_lazy.h (revision f7cd7fe51c4140960ebea00410ed62894f5625d1)
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