xref: /linux/lib/zstd/compress/zstd_double_fast.h (revision e61f33273ca755b3e2ebee4520a76097199dc7a8)
1 /* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
2 /*
3  * Copyright (c) Meta Platforms, Inc. and affiliates.
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_DOUBLE_FAST_H
13 #define ZSTD_DOUBLE_FAST_H
14 
15 #include "../common/mem.h"      /* U32 */
16 #include "zstd_compress_internal.h"     /* ZSTD_CCtx, size_t */
17 
18 #ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR
19 
20 void ZSTD_fillDoubleHashTable(ZSTD_MatchState_t* ms,
21                               void const* end, ZSTD_dictTableLoadMethod_e dtlm,
22                               ZSTD_tableFillPurpose_e tfp);
23 
24 size_t ZSTD_compressBlock_doubleFast(
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_doubleFast_dictMatchState(
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_doubleFast_extDict(
31         ZSTD_MatchState_t* ms, SeqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],
32         void const* src, size_t srcSize);
33 
34 #define ZSTD_COMPRESSBLOCK_DOUBLEFAST ZSTD_compressBlock_doubleFast
35 #define ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE ZSTD_compressBlock_doubleFast_dictMatchState
36 #define ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT ZSTD_compressBlock_doubleFast_extDict
37 #else
38 #define ZSTD_COMPRESSBLOCK_DOUBLEFAST NULL
39 #define ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE NULL
40 #define ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT NULL
41 #endif /* ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR */
42 
43 #endif /* ZSTD_DOUBLE_FAST_H */
44