tracy/zstd/decompress/zstd_decompress_block.h

74 lines
2.6 KiB
C
Raw Normal View History

2020-02-08 13:56:59 +00:00
/*
2023-02-10 19:25:40 +00:00
* Copyright (c) Meta Platforms, Inc. and affiliates.
2020-02-08 13:56:59 +00:00
* All rights reserved.
*
* This source code is licensed under both the BSD-style license (found in the
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
* in the COPYING file in the root directory of this source tree).
* You may select, at your option, one of the above-listed licenses.
*/
#ifndef ZSTD_DEC_BLOCK_H
#define ZSTD_DEC_BLOCK_H
/*-*******************************************************
* Dependencies
*********************************************************/
2021-05-14 22:48:15 +00:00
#include "../common/zstd_deps.h" /* size_t */
#include "../zstd.h" /* DCtx, and some public functions */
#include "../common/zstd_internal.h" /* blockProperties_t, and some public functions */
2020-02-08 13:56:59 +00:00
#include "zstd_decompress_internal.h" /* ZSTD_seqSymbol */
/* === Prototypes === */
/* note: prototypes already published within `zstd.h` :
* ZSTD_decompressBlock()
*/
/* note: prototypes already published within `zstd_internal.h` :
* ZSTD_getcBlockSize()
* ZSTD_decodeSeqHeaders()
*/
2021-12-21 11:21:29 +00:00
/* Streaming state is used to inform allocation of the literal buffer */
typedef enum {
not_streaming = 0,
is_streaming = 1
} streaming_operation;
2020-02-08 13:56:59 +00:00
/* ZSTD_decompressBlock_internal() :
* decompress block, starting at `src`,
* into destination buffer `dst`.
* @return : decompressed block size,
* or an error code (which can be tested using ZSTD_isError())
*/
size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx,
void* dst, size_t dstCapacity,
2024-05-31 15:13:52 +00:00
const void* src, size_t srcSize, const streaming_operation streaming);
2020-02-08 13:56:59 +00:00
/* ZSTD_buildFSETable() :
* generate FSE decoding table for one symbol (ll, ml or off)
* this function must be called with valid parameters only
* (dt is large enough, normalizedCounter distribution total is a power of 2, max is within range, etc.)
* in which case it cannot fail.
2020-12-18 14:46:27 +00:00
* The workspace must be 4-byte aligned and at least ZSTD_BUILD_FSE_TABLE_WKSP_SIZE bytes, which is
* defined in zstd_decompress_internal.h.
2020-02-08 13:56:59 +00:00
* Internal use only.
*/
void ZSTD_buildFSETable(ZSTD_seqSymbol* dt,
const short* normalizedCounter, unsigned maxSymbolValue,
2021-12-21 11:21:29 +00:00
const U32* baseValue, const U8* nbAdditionalBits,
2020-12-18 14:46:27 +00:00
unsigned tableLog, void* wksp, size_t wkspSize,
int bmi2);
2020-02-08 13:56:59 +00:00
2023-04-05 15:16:24 +00:00
/* Internal definition of ZSTD_decompressBlock() to avoid deprecation warnings. */
size_t ZSTD_decompressBlock_deprecated(ZSTD_DCtx* dctx,
void* dst, size_t dstCapacity,
const void* src, size_t srcSize);
2020-02-08 13:56:59 +00:00
#endif /* ZSTD_DEC_BLOCK_H */