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