Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Utilities/cmzstd/lib/decompress/zstd_decompress_block.h
3158 views
1
/*
2
* Copyright (c) Meta Platforms, Inc. and affiliates.
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
12
#ifndef ZSTD_DEC_BLOCK_H
13
#define ZSTD_DEC_BLOCK_H
14
15
/*-*******************************************************
16
* Dependencies
17
*********************************************************/
18
#include "../common/zstd_deps.h" /* size_t */
19
#include "../zstd.h" /* DCtx, and some public functions */
20
#include "../common/zstd_internal.h" /* blockProperties_t, and some public functions */
21
#include "zstd_decompress_internal.h" /* ZSTD_seqSymbol */
22
23
24
/* === Prototypes === */
25
26
/* note: prototypes already published within `zstd.h` :
27
* ZSTD_decompressBlock()
28
*/
29
30
/* note: prototypes already published within `zstd_internal.h` :
31
* ZSTD_getcBlockSize()
32
* ZSTD_decodeSeqHeaders()
33
*/
34
35
36
/* Streaming state is used to inform allocation of the literal buffer */
37
typedef enum {
38
not_streaming = 0,
39
is_streaming = 1
40
} streaming_operation;
41
42
/* ZSTD_decompressBlock_internal() :
43
* decompress block, starting at `src`,
44
* into destination buffer `dst`.
45
* @return : decompressed block size,
46
* or an error code (which can be tested using ZSTD_isError())
47
*/
48
size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx,
49
void* dst, size_t dstCapacity,
50
const void* src, size_t srcSize, const int frame, const streaming_operation streaming);
51
52
/* ZSTD_buildFSETable() :
53
* generate FSE decoding table for one symbol (ll, ml or off)
54
* this function must be called with valid parameters only
55
* (dt is large enough, normalizedCounter distribution total is a power of 2, max is within range, etc.)
56
* in which case it cannot fail.
57
* The workspace must be 4-byte aligned and at least ZSTD_BUILD_FSE_TABLE_WKSP_SIZE bytes, which is
58
* defined in zstd_decompress_internal.h.
59
* Internal use only.
60
*/
61
void ZSTD_buildFSETable(ZSTD_seqSymbol* dt,
62
const short* normalizedCounter, unsigned maxSymbolValue,
63
const U32* baseValue, const U8* nbAdditionalBits,
64
unsigned tableLog, void* wksp, size_t wkspSize,
65
int bmi2);
66
67
/* Internal definition of ZSTD_decompressBlock() to avoid deprecation warnings. */
68
size_t ZSTD_decompressBlock_deprecated(ZSTD_DCtx* dctx,
69
void* dst, size_t dstCapacity,
70
const void* src, size_t srcSize);
71
72
73
#endif /* ZSTD_DEC_BLOCK_H */
74
75