xref: /freebsd/sys/contrib/zstd/lib/compress/zstd_opt.h (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
1 /*
2  * Copyright (c) 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_OPT_H
12 #define ZSTD_OPT_H
13 
14 #if defined (__cplusplus)
15 extern "C" {
16 #endif
17 
18 #include "zstd_compress_internal.h"
19 
20 /* used in ZSTD_loadDictionaryContent() */
21 void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend);
22 
23 size_t ZSTD_compressBlock_btopt(
24         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
25         void const* src, size_t srcSize);
26 size_t ZSTD_compressBlock_btultra(
27         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
28         void const* src, size_t srcSize);
29 size_t ZSTD_compressBlock_btultra2(
30         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
31         void const* src, size_t srcSize);
32 
33 
34 size_t ZSTD_compressBlock_btopt_dictMatchState(
35         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
36         void const* src, size_t srcSize);
37 size_t ZSTD_compressBlock_btultra_dictMatchState(
38         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
39         void const* src, size_t srcSize);
40 
41 size_t ZSTD_compressBlock_btopt_extDict(
42         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
43         void const* src, size_t srcSize);
44 size_t ZSTD_compressBlock_btultra_extDict(
45         ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
46         void const* src, size_t srcSize);
47 
48         /* note : no btultra2 variant for extDict nor dictMatchState,
49          * because btultra2 is not meant to work with dictionaries
50          * and is only specific for the first block (no prefix) */
51 
52 #if defined (__cplusplus)
53 }
54 #endif
55 
56 #endif /* ZSTD_OPT_H */
57