xref: /freebsd/sys/contrib/openzfs/module/zstd/lib/compress/zstd_opt.h (revision b670c9bafc0e31c7609969bf374b2e80bdc00211)
1 // SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only
2 /*
3  * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc.
4  * All rights reserved.
5  *
6  * This source code is licensed under both the BSD-style license (found in the
7  * LICENSE file in the root directory of this source tree) and the GPLv2 (found
8  * in the COPYING file in the root directory of this source tree).
9  * You may select, at your option, one of the above-listed licenses.
10  */
11 
12 #ifndef ZSTD_OPT_H
13 #define ZSTD_OPT_H
14 
15 #if defined (__cplusplus)
16 extern "C" {
17 #endif
18 
19 #include "zstd_compress_internal.h"
20 
21 /* used in ZSTD_loadDictionaryContent() */
22 void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend);
23 
24 size_t ZSTD_compressBlock_btopt(
25         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
26         void const* src, size_t srcSize);
27 size_t ZSTD_compressBlock_btultra(
28         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
29         void const* src, size_t srcSize);
30 size_t ZSTD_compressBlock_btultra2(
31         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
32         void const* src, size_t srcSize);
33 
34 
35 size_t ZSTD_compressBlock_btopt_dictMatchState(
36         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
37         void const* src, size_t srcSize);
38 size_t ZSTD_compressBlock_btultra_dictMatchState(
39         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
40         void const* src, size_t srcSize);
41 
42 size_t ZSTD_compressBlock_btopt_extDict(
43         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
44         void const* src, size_t srcSize);
45 size_t ZSTD_compressBlock_btultra_extDict(
46         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
47         void const* src, size_t srcSize);
48 
49         /* note : no btultra2 variant for extDict nor dictMatchState,
50          * because btultra2 is not meant to work with dictionaries
51          * and is only specific for the first block (no prefix) */
52 
53 #if defined (__cplusplus)
54 }
55 #endif
56 
57 #endif /* ZSTD_OPT_H */
58