Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
zstd_v07.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Yann Collet, 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#ifndef ZSTDv07_H_235446
12#define ZSTDv07_H_235446
13
14#if defined (__cplusplus)
15extern "C" {
16#endif
17
18/*====== Dependency ======*/
19#include <stddef.h> /* size_t */
20
21
22/*====== Export for Windows ======*/
27#if defined(_WIN32) && defined(ZSTDv07_DLL_EXPORT) && (ZSTDv07_DLL_EXPORT==1)
28# define ZSTDLIBv07_API __declspec(dllexport)
29#else
30# define ZSTDLIBv07_API
31#endif
32
33
34/* *************************************
35* Simple API
36***************************************/
42unsigned long long ZSTDv07_getDecompressedSize(const void* src, size_t srcSize);
43
49ZSTDLIBv07_API size_t ZSTDv07_decompress( void* dst, size_t dstCapacity,
50 const void* src, size_t compressedSize);
51
62void ZSTDv07_findFrameSizeInfoLegacy(const void *src, size_t srcSize,
63 size_t* cSize, unsigned long long* dBound);
64
65/*====== Helper functions ======*/
66ZSTDLIBv07_API unsigned ZSTDv07_isError(size_t code);
67ZSTDLIBv07_API const char* ZSTDv07_getErrorName(size_t code);
70/*-*************************************
71* Explicit memory management
72***************************************/
74typedef struct ZSTDv07_DCtx_s ZSTDv07_DCtx;
80ZSTDLIBv07_API size_t ZSTDv07_decompressDCtx(ZSTDv07_DCtx* ctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize);
81
82
83/*-************************
84* Simple dictionary API
85***************************/
91 void* dst, size_t dstCapacity,
92 const void* src, size_t srcSize,
93 const void* dict,size_t dictSize);
94
95
96/*-**************************
97* Advanced Dictionary API
98****************************/
102typedef struct ZSTDv07_DDict_s ZSTDv07_DDict;
105
110 void* dst, size_t dstCapacity,
111 const void* src, size_t srcSize,
112 const ZSTDv07_DDict* ddict);
113
114typedef struct {
115 unsigned long long frameContentSize;
116 unsigned windowSize;
117 unsigned dictID;
118 unsigned checksumFlag;
120
121ZSTDLIBv07_API size_t ZSTDv07_getFrameParams(ZSTDv07_frameParams* fparamsPtr, const void* src, size_t srcSize);
126/* *************************************
127* Streaming functions
128***************************************/
129typedef struct ZBUFFv07_DCtx_s ZBUFFv07_DCtx;
132
135
137 void* dst, size_t* dstCapacityPtr,
138 const void* src, size_t* srcSizePtr);
139
140/*-***************************************************************************
141* Streaming decompression howto
142*
143* A ZBUFFv07_DCtx object is required to track streaming operations.
144* Use ZBUFFv07_createDCtx() and ZBUFFv07_freeDCtx() to create/release resources.
145* Use ZBUFFv07_decompressInit() to start a new decompression operation,
146* or ZBUFFv07_decompressInitDictionary() if decompression requires a dictionary.
147* Note that ZBUFFv07_DCtx objects can be re-init multiple times.
148*
149* Use ZBUFFv07_decompressContinue() repetitively to consume your input.
150* *srcSizePtr and *dstCapacityPtr can be any size.
151* The function will report how many bytes were read or written by modifying *srcSizePtr and *dstCapacityPtr.
152* Note that it may not consume the entire input, in which case it's up to the caller to present remaining input again.
153* The content of `dst` will be overwritten (up to *dstCapacityPtr) at each function call, so save its content if it matters, or change `dst`.
154* @return : a hint to preferred nb of bytes to use as input for next function call (it's only a hint, to help latency),
155* or 0 when a frame is completely decoded,
156* or an error code, which can be tested using ZBUFFv07_isError().
157*
158* Hint : recommended buffer sizes (not compulsory) : ZBUFFv07_recommendedDInSize() and ZBUFFv07_recommendedDOutSize()
159* output : ZBUFFv07_recommendedDOutSize== 128 KB block size is the internal unit, it ensures it's always possible to write a full block when decoded.
160* input : ZBUFFv07_recommendedDInSize == 128KB + 3;
161* just follow indications from ZBUFFv07_decompressContinue() to minimize latency. It should always be <= 128 KB + 3 .
162* *******************************************************************************/
163
164
165/* *************************************
166* Tool functions
167***************************************/
168ZSTDLIBv07_API unsigned ZBUFFv07_isError(size_t errorCode);
169ZSTDLIBv07_API const char* ZBUFFv07_getErrorName(size_t errorCode);
170
175
176
177/*-*************************************
178* Constants
179***************************************/
180#define ZSTDv07_MAGICNUMBER 0xFD2FB527 /* v0.7 */
181
182
183#if defined (__cplusplus)
184}
185#endif
186
187#endif /* ZSTDv07_H_235446 */
char * dst
Definition lz4.h:833
char int srcSize
Definition lz4.h:806
char int compressedSize
Definition lz4.h:833
const char * src
Definition lz4.h:866
Definition zstd_v07.c:4313
Definition zstd_v07.c:2930
Definition zstd_v07.c:4180
Definition zstd_v07.h:114
Definition inftrees.h:24
md5_starts & ctx
Definition zlib_interface.c:41
const void * dict
Definition zbuff.h:76
void size_t * dstCapacityPtr
Definition zbuff.h:78
const void size_t dictSize
Definition zbuff.h:76
void size_t const void size_t * srcSizePtr
Definition zbuff.h:78
#define ZSTDv07_isError
Definition zstd_v07.c:2911
ZSTDLIBv07_API size_t ZBUFFv07_recommendedDOutSize(void)
Definition zstd_v07.c:4541
ZSTDLIBv07_API ZBUFFv07_DCtx * ZBUFFv07_createDCtx(void)
Definition zstd_v07.c:4332
ZSTDLIBv07_API size_t ZBUFFv07_decompressInit(ZBUFFv07_DCtx *dctx)
Definition zstd_v07.c:4377
ZSTDLIBv07_API size_t ZSTDv07_decompress_usingDDict(ZSTDv07_DCtx *dctx, void *dst, size_t dstCapacity, const void *src, size_t srcSize, const ZSTDv07_DDict *ddict)
Definition zstd_v07.c:4243
ZSTDLIBv07_API size_t ZSTDv07_decompress(void *dst, size_t dstCapacity, const void *src, size_t compressedSize)
Definition zstd_v07.c:3889
ZSTDLIBv07_API const char * ZSTDv07_getErrorName(size_t code)
Definition zstd_v07.c:2618
ZSTDLIBv07_API size_t ZBUFFv07_recommendedDInSize(void)
Definition zstd_v07.c:4540
ZSTDLIBv07_API size_t ZSTDv07_getFrameParams(ZSTDv07_frameParams *fparamsPtr, const void *src, size_t srcSize)
Definition zstd_v07.c:3150
ZSTDLIBv07_API size_t ZBUFFv07_decompressContinue(ZBUFFv07_DCtx *dctx, void *dst, size_t *dstCapacityPtr, const void *src, size_t *srcSizePtr)
Definition zstd_v07.c:4396
ZSTDLIBv07_API unsigned ZBUFFv07_isError(size_t errorCode)
Definition zstd_v07.c:2625
ZSTDLIBv07_API ZSTDv07_DCtx * ZSTDv07_createDCtx(void)
Definition zstd_v07.c:2994
ZSTDLIBv07_API size_t ZBUFFv07_freeDCtx(ZBUFFv07_DCtx *dctx)
Definition zstd_v07.c:4357
#define ZSTDLIBv07_API
Definition zstd_v07.h:30
ZSTDLIBv07_API size_t ZSTDv07_decompress_usingDict(ZSTDv07_DCtx *dctx, void *dst, size_t dstCapacity, const void *src, size_t srcSize, const void *dict, size_t dictSize)
Definition zstd_v07.c:3872
ZSTDLIBv07_API size_t ZSTDv07_freeDCtx(ZSTDv07_DCtx *dctx)
Definition zstd_v07.c:2999
void ZSTDv07_findFrameSizeInfoLegacy(const void *src, size_t srcSize, size_t *cSize, unsigned long long *dBound)
Definition zstd_v07.c:3912
ZSTDLIBv07_API ZSTDv07_DDict * ZSTDv07_createDDict(const void *dict, size_t dictSize)
Definition zstd_v07.c:4224
unsigned long long ZSTDv07_getDecompressedSize(const void *src, size_t srcSize)
Definition zstd_v07.c:3226
ZSTDLIBv07_API const char * ZBUFFv07_getErrorName(size_t errorCode)
Definition zstd_v07.c:2627
ZSTDLIBv07_API size_t ZSTDv07_freeDDict(ZSTDv07_DDict *ddict)
Definition zstd_v07.c:4230
ZSTDLIBv07_API size_t ZSTDv07_decompressDCtx(ZSTDv07_DCtx *ctx, void *dst, size_t dstCapacity, const void *src, size_t srcSize)
Definition zstd_v07.c:3883
ZSTDLIBv07_API size_t ZBUFFv07_decompressInitDictionary(ZBUFFv07_DCtx *dctx, const void *dict, size_t dictSize)
Definition zstd_v07.c:4370