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