xref: /freebsd-src/sys/contrib/openzfs/module/zstd/lib/compress/zstd_lazy.h (revision c03c5b1c80914ec656fbee84539355d1fad68bf9)
1*c03c5b1cSMartin Matuska /*
2*c03c5b1cSMartin Matuska  * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
3*c03c5b1cSMartin Matuska  * All rights reserved.
4*c03c5b1cSMartin Matuska  *
5*c03c5b1cSMartin Matuska  * This source code is licensed under both the BSD-style license (found in the
6*c03c5b1cSMartin Matuska  * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7*c03c5b1cSMartin Matuska  * in the COPYING file in the root directory of this source tree).
8*c03c5b1cSMartin Matuska  * You may select, at your option, one of the above-listed licenses.
9*c03c5b1cSMartin Matuska  */
10*c03c5b1cSMartin Matuska 
11*c03c5b1cSMartin Matuska #ifndef ZSTD_LAZY_H
12*c03c5b1cSMartin Matuska #define ZSTD_LAZY_H
13*c03c5b1cSMartin Matuska 
14*c03c5b1cSMartin Matuska #if defined (__cplusplus)
15*c03c5b1cSMartin Matuska extern "C" {
16*c03c5b1cSMartin Matuska #endif
17*c03c5b1cSMartin Matuska 
18*c03c5b1cSMartin Matuska #include "zstd_compress_internal.h"
19*c03c5b1cSMartin Matuska 
20*c03c5b1cSMartin Matuska U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip);
21*c03c5b1cSMartin Matuska 
22*c03c5b1cSMartin Matuska void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue);  /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */
23*c03c5b1cSMartin Matuska 
24*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_btlazy2(
25*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
26*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
27*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_lazy2(
28*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
29*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
30*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_lazy(
31*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
32*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
33*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_greedy(
34*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
35*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
36*c03c5b1cSMartin Matuska 
37*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_btlazy2_dictMatchState(
38*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
39*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
40*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_lazy2_dictMatchState(
41*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
42*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
43*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_lazy_dictMatchState(
44*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
45*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
46*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_greedy_dictMatchState(
47*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
48*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
49*c03c5b1cSMartin Matuska 
50*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_greedy_extDict(
51*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
52*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
53*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_lazy_extDict(
54*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
55*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
56*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_lazy2_extDict(
57*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
58*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
59*c03c5b1cSMartin Matuska size_t ZSTD_compressBlock_btlazy2_extDict(
60*c03c5b1cSMartin Matuska         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
61*c03c5b1cSMartin Matuska         void const* src, size_t srcSize);
62*c03c5b1cSMartin Matuska 
63*c03c5b1cSMartin Matuska #if defined (__cplusplus)
64*c03c5b1cSMartin Matuska }
65*c03c5b1cSMartin Matuska #endif
66*c03c5b1cSMartin Matuska 
67*c03c5b1cSMartin Matuska #endif /* ZSTD_LAZY_H */
68