xref: /freebsd/sys/contrib/zstd/lib/compress/zstd_compress_literals.h (revision fe75646a0234a261c0013bf1840fdac4acaf0cec)
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_COMPRESS_LITERALS_H
12 #define ZSTD_COMPRESS_LITERALS_H
13 
14 #include "zstd_compress_internal.h" /* ZSTD_hufCTables_t, ZSTD_minGain() */
15 
16 
17 size_t ZSTD_noCompressLiterals (void* dst, size_t dstCapacity, const void* src, size_t srcSize);
18 
19 size_t ZSTD_compressRleLiteralsBlock (void* dst, size_t dstCapacity, const void* src, size_t srcSize);
20 
21 /* If suspectUncompressible then some sampling checks will be run to potentially skip huffman coding */
22 size_t ZSTD_compressLiterals (ZSTD_hufCTables_t const* prevHuf,
23                               ZSTD_hufCTables_t* nextHuf,
24                               ZSTD_strategy strategy, int disableLiteralCompression,
25                               void* dst, size_t dstCapacity,
26                         const void* src, size_t srcSize,
27                               void* entropyWorkspace, size_t entropyWorkspaceSize,
28                         const int bmi2,
29                         unsigned suspectUncompressible);
30 
31 #endif /* ZSTD_COMPRESS_LITERALS_H */
32