Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
lz4frame.h
Go to the documentation of this file.
1/*
2 LZ4F - LZ4-Frame library
3 Header File
4 Copyright (C) 2011-2020, Yann Collet.
5 BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
6
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions are
9 met:
10
11 * Redistributions of source code must retain the above copyright
12 notice, this list of conditions and the following disclaimer.
13 * Redistributions in binary form must reproduce the above
14 copyright notice, this list of conditions and the following disclaimer
15 in the documentation and/or other materials provided with the
16 distribution.
17
18 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30 You can contact the author at :
31 - LZ4 source repository : https://github.com/lz4/lz4
32 - LZ4 public forum : https://groups.google.com/forum/#!forum/lz4c
33*/
34
35/* LZ4F is a stand-alone API able to create and decode LZ4 frames
36 * conformant with specification v1.6.1 in doc/lz4_Frame_format.md .
37 * Generated frames are compatible with `lz4` CLI.
38 *
39 * LZ4F also offers streaming capabilities.
40 *
41 * lz4.h is not required when using lz4frame.h,
42 * except to extract common constants such as LZ4_VERSION_NUMBER.
43 * */
44
45#ifndef LZ4F_H_09782039843
46#define LZ4F_H_09782039843
47
48#if defined (__cplusplus)
49extern "C" {
50#endif
51
52/* --- Dependency --- */
53#include <stddef.h> /* size_t */
54
55
64/*-***************************************************************
65 * Compiler specifics
66 *****************************************************************/
67/* LZ4_DLL_EXPORT :
68 * Enable exporting of functions when building a Windows DLL
69 * LZ4FLIB_VISIBILITY :
70 * Control library symbols visibility.
71 */
72#ifndef LZ4FLIB_VISIBILITY
73# if defined(__GNUC__) && (__GNUC__ >= 4)
74# define LZ4FLIB_VISIBILITY __attribute__ ((visibility ("default")))
75# else
76# define LZ4FLIB_VISIBILITY
77# endif
78#endif
79#if defined(LZ4_DLL_EXPORT) && (LZ4_DLL_EXPORT==1)
80# define LZ4FLIB_API __declspec(dllexport) LZ4FLIB_VISIBILITY
81#elif defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1)
82# define LZ4FLIB_API __declspec(dllimport) LZ4FLIB_VISIBILITY
83#else
84# define LZ4FLIB_API LZ4FLIB_VISIBILITY
85#endif
86
87#ifdef LZ4F_DISABLE_DEPRECATE_WARNINGS
88# define LZ4F_DEPRECATE(x) x
89#else
90# if defined(_MSC_VER)
91# define LZ4F_DEPRECATE(x) x /* __declspec(deprecated) x - only works with C++ */
92# elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 6))
93# define LZ4F_DEPRECATE(x) x __attribute__((deprecated))
94# else
95# define LZ4F_DEPRECATE(x) x /* no deprecation warning for this compiler */
96# endif
97#endif
98
99
100/*-************************************
101 * Error management
102 **************************************/
103typedef size_t LZ4F_errorCode_t;
104
109/*-************************************
110 * Frame compression types
111 ************************************* */
112/* #define LZ4F_ENABLE_OBSOLETE_ENUMS // uncomment to enable obsolete enums */
113#ifdef LZ4F_ENABLE_OBSOLETE_ENUMS
114# define LZ4F_OBSOLETE_ENUM(x) , LZ4F_DEPRECATE(x) = LZ4F_##x
115#else
116# define LZ4F_OBSOLETE_ENUM(x)
117#endif
118
119/* The larger the block size, the (slightly) better the compression ratio,
120 * though there are diminishing returns.
121 * Larger blocks also increase memory usage on both compression and decompression sides.
122 */
134
135/* Linked blocks sharply reduce inefficiencies when using small blocks,
136 * they compress better.
137 * However, some LZ4 decoders are only compatible with independent blocks */
138typedef enum {
141 LZ4F_OBSOLETE_ENUM(blockLinked)
142 LZ4F_OBSOLETE_ENUM(blockIndependent)
144
145typedef enum {
148 LZ4F_OBSOLETE_ENUM(noContentChecksum)
149 LZ4F_OBSOLETE_ENUM(contentChecksumEnabled)
151
156
162
163#ifdef LZ4F_ENABLE_OBSOLETE_ENUMS
164typedef LZ4F_blockSizeID_t blockSizeID_t;
165typedef LZ4F_blockMode_t blockMode_t;
166typedef LZ4F_frameType_t frameType_t;
167typedef LZ4F_contentChecksum_t contentChecksum_t;
168#endif
169
175typedef struct {
176 LZ4F_blockSizeID_t blockSizeID; /* max64KB, max256KB, max1MB, max4MB; 0 == default (LZ4F_max64KB) */
177 LZ4F_blockMode_t blockMode; /* LZ4F_blockLinked, LZ4F_blockIndependent; 0 == default (LZ4F_blockLinked) */
178 LZ4F_contentChecksum_t contentChecksumFlag; /* 1: add a 32-bit checksum of frame's decompressed data; 0 == default (disabled) */
179 LZ4F_frameType_t frameType; /* read-only field : LZ4F_frame or LZ4F_skippableFrame */
180 unsigned long long contentSize; /* Size of uncompressed content ; 0 == unknown */
181 unsigned dictID; /* Dictionary ID, sent by compressor to help decoder select correct dictionary; 0 == no dictID provided */
182 LZ4F_blockChecksum_t blockChecksumFlag; /* 1: each block followed by a checksum of block's compressed data; 0 == default (disabled) */
184
185#define LZ4F_INIT_FRAMEINFO { LZ4F_max64KB, LZ4F_blockLinked, LZ4F_noContentChecksum, LZ4F_frame, 0ULL, 0U, LZ4F_noBlockChecksum } /* v1.8.3+ */
186
192typedef struct {
194 int compressionLevel; /* 0: default (fast mode); values > LZ4HC_CLEVEL_MAX count as LZ4HC_CLEVEL_MAX; values < 0 trigger "fast acceleration" */
195 unsigned autoFlush; /* 1: always flush; reduces usage of internal buffers */
196 unsigned favorDecSpeed; /* 1: parser favors decompression speed vs compression ratio. Only works for high compression modes (>= LZ4HC_CLEVEL_OPT_MIN) */ /* v1.8.2+ */
197 unsigned reserved[3]; /* must be zero for forward compatibility */
199
200#define LZ4F_INIT_PREFERENCES { LZ4F_INIT_FRAMEINFO, 0, 0u, 0u, { 0u, 0u, 0u } } /* v1.8.3+ */
201
202
203/*-*********************************
204* Simple compression function
205***********************************/
206
224LZ4FLIB_API size_t LZ4F_compressFrame(void* dstBuffer, size_t dstCapacity,
225 const void* srcBuffer, size_t srcSize,
226 const LZ4F_preferences_t* preferencesPtr);
227
234LZ4FLIB_API size_t LZ4F_compressFrameBound(size_t srcSize, const LZ4F_preferences_t* preferencesPtr);
235
236
240LZ4FLIB_API int LZ4F_compressionLevel_max(void); /* v1.8.0+ */
241
242
243/*-***********************************
244* Advanced compression functions
245*************************************/
246typedef struct LZ4F_cctx_s LZ4F_cctx; /* incomplete type */
247typedef LZ4F_cctx* LZ4F_compressionContext_t; /* for compatibility with older APIs, prefer using LZ4F_cctx */
248
249typedef struct {
250 unsigned stableSrc; /* 1 == src content will remain present on future calls to LZ4F_compress(); skip copying src content within tmp buffer */
251 unsigned reserved[3];
253
254/*--- Resource Management ---*/
255
256#define LZ4F_VERSION 100 /* This number can be used to check for an incompatible API breaking change */
257LZ4FLIB_API unsigned LZ4F_getVersion(void);
258
276
277
278/*---- Compression ----*/
279
280#define LZ4F_HEADER_SIZE_MIN 7 /* LZ4 Frame header size can vary, depending on selected parameters */
281#define LZ4F_HEADER_SIZE_MAX 19
282
283/* Size in bytes of a block header in little-endian format. Highest bit indicates if block data is uncompressed */
284#define LZ4F_BLOCK_HEADER_SIZE 4
285
286/* Size in bytes of a block checksum footer in little-endian format. */
287#define LZ4F_BLOCK_CHECKSUM_SIZE 4
288
289/* Size in bytes of the content checksum. */
290#define LZ4F_CONTENT_CHECKSUM_SIZE 4
291
292/* Size in bytes of the endmark. */
293#define LZ4F_ENDMARK_SIZE 4
294
303 void* dstBuffer, size_t dstCapacity,
304 const LZ4F_preferences_t* prefsPtr);
305
321LZ4FLIB_API size_t LZ4F_compressBound(size_t srcSize, const LZ4F_preferences_t* prefsPtr);
322
336 void* dstBuffer, size_t dstCapacity,
337 const void* srcBuffer, size_t srcSize,
338 const LZ4F_compressOptions_t* cOptPtr);
339
349LZ4FLIB_API size_t LZ4F_flush(LZ4F_cctx* cctx,
350 void* dstBuffer, size_t dstCapacity,
351 const LZ4F_compressOptions_t* cOptPtr);
352
364 void* dstBuffer, size_t dstCapacity,
365 const LZ4F_compressOptions_t* cOptPtr);
366
367
368/*-*********************************
369* Decompression functions
370***********************************/
371typedef struct LZ4F_dctx_s LZ4F_dctx; /* incomplete type */
372typedef LZ4F_dctx* LZ4F_decompressionContext_t; /* compatibility with previous API versions */
373
374typedef struct {
375 unsigned stableDst; /* pledges that last 64KB decompressed data is present right before @dstBuffer pointer.
376 * This optimization skips internal storage operations.
377 * Once set, this pledge must remain valid up to the end of current frame. */
378 unsigned skipChecksums; /* disable checksum calculation and verification, even when one is present in frame, to save CPU time.
379 * Setting this option to 1 once disables all checksums for the rest of the frame. */
380 unsigned reserved1; /* must be set to zero for forward compatibility */
381 unsigned reserved0; /* idem */
383
384
385/* Resource management */
386
399
400
401/*-***********************************
402* Streaming decompression functions
403*************************************/
404
405#define LZ4F_MAGICNUMBER 0x184D2204U
406#define LZ4F_MAGIC_SKIPPABLE_START 0x184D2A50U
407#define LZ4F_MIN_SIZE_TO_KNOW_HEADER_LENGTH 5
408
418LZ4FLIB_API size_t LZ4F_headerSize(const void* src, size_t srcSize);
419
463LZ4FLIB_API size_t
465 LZ4F_frameInfo_t* frameInfoPtr,
466 const void* srcBuffer, size_t* srcSizePtr);
467
504LZ4FLIB_API size_t
506 void* dstBuffer, size_t* dstSizePtr,
507 const void* srcBuffer, size_t* srcSizePtr,
508 const LZ4F_decompressOptions_t* dOptPtr);
509
510
516LZ4FLIB_API void LZ4F_resetDecompressionContext(LZ4F_dctx* dctx); /* always successful */
517
518
519/**********************************
520 * Dictionary compression API
521 *********************************/
522
523/* A Dictionary is useful for the compression of small messages (KB range).
524 * It dramatically improves compression efficiency.
525 *
526 * LZ4 can ingest any input as dictionary, though only the last 64 KB are useful.
527 * Better results are generally achieved by using Zstandard's Dictionary Builder
528 * to generate a high-quality dictionary from a set of samples.
529 *
530 * The same dictionary will have to be used on the decompression side
531 * for decoding to be successful.
532 * To help identify the correct dictionary at decoding stage,
533 * the frame header allows optional embedding of a dictID field.
534 */
535
549LZ4FLIB_API size_t
551 void* dstBuffer, size_t dstCapacity,
552 const void* dictBuffer, size_t dictSize,
553 const LZ4F_preferences_t* prefsPtr);
554
559LZ4FLIB_API size_t
561 void* dstBuffer, size_t* dstSizePtr,
562 const void* srcBuffer, size_t* srcSizePtr,
563 const void* dict, size_t dictSize,
564 const LZ4F_decompressOptions_t* decompressOptionsPtr);
565
566/*****************************************
567 * Bulk processing dictionary compression
568 *****************************************/
569
570/* Loading a dictionary has a cost, since it involves construction of tables.
571 * The Bulk processing dictionary API makes it possible to share this cost
572 * over an arbitrary number of compression jobs, even concurrently,
573 * markedly improving compression latency for these cases.
574 *
575 * Note that there is no corresponding bulk API for the decompression side,
576 * because dictionary does not carry any initialization cost for decompression.
577 * Use the regular LZ4F_decompress_usingDict() there.
578 */
580
586LZ4FLIB_API LZ4F_CDict* LZ4F_createCDict(const void* dictBuffer, size_t dictSize);
588
601LZ4FLIB_API size_t
603 void* dst, size_t dstCapacity,
604 const void* src, size_t srcSize,
605 const LZ4F_CDict* cdict,
606 const LZ4F_preferences_t* preferencesPtr);
607
616LZ4FLIB_API size_t
618 void* dstBuffer, size_t dstCapacity,
619 const LZ4F_CDict* cdict,
620 const LZ4F_preferences_t* prefsPtr);
621
622
623#if defined (__cplusplus)
624}
625#endif
626
627#endif /* LZ4F_H_09782039843 */
628
629#if defined(LZ4F_STATIC_LINKING_ONLY) && !defined(LZ4F_H_STATIC_09782039843)
630#define LZ4F_H_STATIC_09782039843
631
632/* Note :
633 * The below declarations are not stable and may change in the future.
634 * They are therefore only safe to depend on
635 * when the caller is statically linked against the library.
636 * To access their declarations, define LZ4F_STATIC_LINKING_ONLY.
637 *
638 * By default, these symbols aren't published into shared/dynamic libraries.
639 * You can override this behavior and force them to be published
640 * by defining LZ4F_PUBLISH_STATIC_FUNCTIONS.
641 * Use at your own risk.
642 */
643
644#if defined (__cplusplus)
645extern "C" {
646#endif
647
648#ifdef LZ4F_PUBLISH_STATIC_FUNCTIONS
649# define LZ4FLIB_STATIC_API LZ4FLIB_API
650#else
651# define LZ4FLIB_STATIC_API
652#endif
653
654
655/* --- Error List --- */
656#define LZ4F_LIST_ERRORS(ITEM) \
657 ITEM(OK_NoError) \
658 ITEM(ERROR_GENERIC) \
659 ITEM(ERROR_maxBlockSize_invalid) \
660 ITEM(ERROR_blockMode_invalid) \
661 ITEM(ERROR_parameter_invalid) \
662 ITEM(ERROR_compressionLevel_invalid) \
663 ITEM(ERROR_headerVersion_wrong) \
664 ITEM(ERROR_blockChecksum_invalid) \
665 ITEM(ERROR_reservedFlag_set) \
666 ITEM(ERROR_allocation_failed) \
667 ITEM(ERROR_srcSize_tooLarge) \
668 ITEM(ERROR_dstMaxSize_tooSmall) \
669 ITEM(ERROR_frameHeader_incomplete) \
670 ITEM(ERROR_frameType_unknown) \
671 ITEM(ERROR_frameSize_wrong) \
672 ITEM(ERROR_srcPtr_wrong) \
673 ITEM(ERROR_decompressionFailed) \
674 ITEM(ERROR_headerChecksum_invalid) \
675 ITEM(ERROR_contentChecksum_invalid) \
676 ITEM(ERROR_frameDecoding_alreadyStarted) \
677 ITEM(ERROR_compressionState_uninitialized) \
678 ITEM(ERROR_parameter_null) \
679 ITEM(ERROR_io_write) \
680 ITEM(ERROR_io_read) \
681 ITEM(ERROR_maxCode)
682
683#define LZ4F_GENERATE_ENUM(ENUM) LZ4F_##ENUM,
684
685/* enum list is exposed, to handle specific errors */
686typedef enum { LZ4F_LIST_ERRORS(LZ4F_GENERATE_ENUM)
687 _LZ4F_dummy_error_enum_for_c89_never_used } LZ4F_errorCodes;
688
689LZ4FLIB_STATIC_API LZ4F_errorCodes LZ4F_getErrorCode(size_t functionResult);
690
691/**********************************
692 * Advanced compression operations
693 *********************************/
694
700LZ4FLIB_STATIC_API size_t LZ4F_getBlockSize(LZ4F_blockSizeID_t blockSizeID);
701
715LZ4FLIB_STATIC_API size_t
717 void* dstBuffer, size_t dstCapacity,
718 const void* srcBuffer, size_t srcSize,
719 const LZ4F_compressOptions_t* cOptPtr);
720
721/**********************************
722 * Custom memory allocation
723 *********************************/
724
730typedef void* (*LZ4F_AllocFunction) (void* opaqueState, size_t size);
731typedef void* (*LZ4F_CallocFunction) (void* opaqueState, size_t size);
732typedef void (*LZ4F_FreeFunction) (void* opaqueState, void* address);
733typedef struct {
734 LZ4F_AllocFunction customAlloc;
735 LZ4F_CallocFunction customCalloc; /* optional; when not defined, uses customAlloc + memset */
736 LZ4F_FreeFunction customFree;
737 void* opaqueState;
738} LZ4F_CustomMem;
739static
740#ifdef __GNUC__
741__attribute__((__unused__))
742#endif
743LZ4F_CustomMem const LZ4F_defaultCMem = { NULL, NULL, NULL, NULL };
745LZ4FLIB_STATIC_API LZ4F_cctx* LZ4F_createCompressionContext_advanced(LZ4F_CustomMem customMem, unsigned version);
746LZ4FLIB_STATIC_API LZ4F_dctx* LZ4F_createDecompressionContext_advanced(LZ4F_CustomMem customMem, unsigned version);
747LZ4FLIB_STATIC_API LZ4F_CDict* LZ4F_createCDict_advanced(LZ4F_CustomMem customMem, const void* dictBuffer, size_t dictSize);
748
749
750#if defined (__cplusplus)
751}
752#endif
753
754#endif /* defined(LZ4F_STATIC_LINKING_ONLY) && !defined(LZ4F_H_STATIC_09782039843) */
char * dst
Definition lz4.h:833
char int srcSize
Definition lz4.h:806
const char * src
Definition lz4.h:866
LZ4F_CDict * LZ4F_createCDict_advanced(LZ4F_CustomMem cmem, const void *dictBuffer, size_t dictSize)
Definition lz4frame.c:539
size_t LZ4F_uncompressedUpdate(LZ4F_cctx *cctxPtr, void *dstBuffer, size_t dstCapacity, const void *srcBuffer, size_t srcSize, const LZ4F_compressOptions_t *compressOptionsPtr)
Definition lz4frame.c:1139
LZ4F_cctx * LZ4F_createCompressionContext_advanced(LZ4F_CustomMem customMem, unsigned version)
Definition lz4frame.c:596
size_t LZ4F_getBlockSize(LZ4F_blockSizeID_t blockSizeID)
Definition lz4frame.c:333
LZ4F_dctx * LZ4F_createDecompressionContext_advanced(LZ4F_CustomMem customMem, unsigned version)
Definition lz4frame.c:1284
LZ4F_errorCodes LZ4F_getErrorCode(size_t functionResult)
Definition lz4frame.c:305
LZ4F_blockMode_t
Definition lz4frame.h:138
@ LZ4F_blockLinked
Definition lz4frame.h:139
@ LZ4F_blockIndependent
Definition lz4frame.h:140
LZ4FLIB_API LZ4F_CDict * LZ4F_createCDict(const void *dictBuffer, size_t dictSize)
Definition lz4frame.c:575
size_t LZ4F_errorCode_t
Definition lz4frame.h:103
#define LZ4FLIB_API
Definition lz4frame.h:84
#define LZ4F_OBSOLETE_ENUM(x)
Definition lz4frame.h:116
LZ4FLIB_API void LZ4F_resetDecompressionContext(LZ4F_dctx *dctx)
Definition lz4frame.c:1327
LZ4FLIB_API size_t LZ4F_compressFrameBound(size_t srcSize, const LZ4F_preferences_t *preferencesPtr)
Definition lz4frame.c:406
LZ4FLIB_API size_t LZ4F_compressUpdate(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const void *srcBuffer, size_t srcSize, const LZ4F_compressOptions_t *cOptPtr)
Definition lz4frame.c:1119
LZ4FLIB_API LZ4F_errorCode_t LZ4F_freeCompressionContext(LZ4F_cctx *cctx)
Definition lz4frame.c:629
LZ4FLIB_API int LZ4F_compressionLevel_max(void)
Definition lz4frame.c:331
LZ4FLIB_API size_t LZ4F_compressEnd(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_compressOptions_t *cOptPtr)
Definition lz4frame.c:1206
LZ4F_blockSizeID_t
Definition lz4frame.h:123
@ LZ4F_max256KB
Definition lz4frame.h:126
@ LZ4F_default
Definition lz4frame.h:124
@ LZ4F_max1MB
Definition lz4frame.h:127
@ LZ4F_max64KB
Definition lz4frame.h:125
@ LZ4F_max4MB
Definition lz4frame.h:128
LZ4FLIB_API LZ4F_errorCode_t LZ4F_freeDecompressionContext(LZ4F_dctx *dctx)
Definition lz4frame.c:1313
LZ4FLIB_API unsigned LZ4F_isError(LZ4F_errorCode_t code)
Definition lz4frame.c:293
LZ4FLIB_API size_t LZ4F_flush(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_compressOptions_t *cOptPtr)
Definition lz4frame.c:1159
LZ4FLIB_API size_t LZ4F_decompress_usingDict(LZ4F_dctx *dctxPtr, void *dstBuffer, size_t *dstSizePtr, const void *srcBuffer, size_t *srcSizePtr, const void *dict, size_t dictSize, const LZ4F_decompressOptions_t *decompressOptionsPtr)
Definition lz4frame.c:2123
LZ4FLIB_API const char * LZ4F_getErrorName(LZ4F_errorCode_t code)
Definition lz4frame.c:298
LZ4F_cctx * LZ4F_compressionContext_t
Definition lz4frame.h:247
LZ4FLIB_API size_t LZ4F_headerSize(const void *src, size_t srcSize)
Definition lz4frame.c:1444
LZ4FLIB_API size_t LZ4F_compressFrame_usingCDict(LZ4F_cctx *cctx, void *dst, size_t dstCapacity, const void *src, size_t srcSize, const LZ4F_CDict *cdict, const LZ4F_preferences_t *preferencesPtr)
Definition lz4frame.c:428
LZ4FLIB_API LZ4F_errorCode_t LZ4F_createDecompressionContext(LZ4F_dctx **dctxPtr, unsigned version)
Definition lz4frame.c:1301
LZ4F_dctx * LZ4F_decompressionContext_t
Definition lz4frame.h:372
LZ4FLIB_API size_t LZ4F_decompress(LZ4F_dctx *dctx, void *dstBuffer, size_t *dstSizePtr, const void *srcBuffer, size_t *srcSizePtr, const LZ4F_decompressOptions_t *dOptPtr)
Definition lz4frame.c:1613
LZ4FLIB_API size_t LZ4F_getFrameInfo(LZ4F_dctx *dctx, LZ4F_frameInfo_t *frameInfoPtr, const void *srcBuffer, size_t *srcSizePtr)
Definition lz4frame.c:1485
LZ4FLIB_API size_t LZ4F_compressBegin(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_preferences_t *prefsPtr)
Definition lz4frame.c:815
LZ4FLIB_API size_t LZ4F_compressBegin_usingDict(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const void *dictBuffer, size_t dictSize, const LZ4F_preferences_t *prefsPtr)
Definition lz4frame.c:838
LZ4FLIB_API unsigned LZ4F_getVersion(void)
Definition lz4frame.c:329
LZ4F_contentChecksum_t
Definition lz4frame.h:145
@ LZ4F_noContentChecksum
Definition lz4frame.h:146
@ LZ4F_contentChecksumEnabled
Definition lz4frame.h:147
LZ4FLIB_API size_t LZ4F_compressBegin_usingCDict(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_CDict *cdict, const LZ4F_preferences_t *prefsPtr)
Definition lz4frame.c:851
LZ4FLIB_API LZ4F_errorCode_t LZ4F_createCompressionContext(LZ4F_cctx **cctxPtr, unsigned version)
Definition lz4frame.c:618
LZ4FLIB_API void LZ4F_freeCDict(LZ4F_CDict *CDict)
Definition lz4frame.c:581
LZ4F_frameType_t
Definition lz4frame.h:157
@ LZ4F_skippableFrame
Definition lz4frame.h:159
@ LZ4F_frame
Definition lz4frame.h:158
LZ4FLIB_API size_t LZ4F_compressBound(size_t srcSize, const LZ4F_preferences_t *prefsPtr)
Definition lz4frame.c:867
LZ4F_blockChecksum_t
Definition lz4frame.h:152
@ LZ4F_blockChecksumEnabled
Definition lz4frame.h:154
@ LZ4F_noBlockChecksum
Definition lz4frame.h:153
LZ4FLIB_API size_t LZ4F_compressFrame(void *dstBuffer, size_t dstCapacity, const void *srcBuffer, size_t srcSize, const LZ4F_preferences_t *preferencesPtr)
Definition lz4frame.c:484
@ skippableFrame
Definition lz4io.c:2571
#define __attribute__(unused_ric_since_2004)
Definition main_cr.c:84
LZ4F_blockMode_t
Definition lz4frame.h:138
LZ4F_blockSizeID_t
Definition lz4frame.h:123
LZ4F_contentChecksum_t
Definition lz4frame.h:145
LZ4F_frameType_t
Definition lz4frame.h:157
LZ4F_blockChecksum_t
Definition lz4frame.h:152
Definition lz4frame.c:531
Definition lz4frame.c:266
Definition lz4frame.h:249
unsigned stableSrc
Definition lz4frame.h:250
Definition lz4frame.c:1260
Definition lz4frame.h:374
unsigned reserved0
Definition lz4frame.h:381
unsigned stableDst
Definition lz4frame.h:375
unsigned reserved1
Definition lz4frame.h:380
unsigned skipChecksums
Definition lz4frame.h:378
Definition lz4frame.h:175
unsigned long long contentSize
Definition lz4frame.h:180
LZ4F_blockSizeID_t blockSizeID
Definition lz4frame.h:176
unsigned dictID
Definition lz4frame.h:181
LZ4F_frameType_t frameType
Definition lz4frame.h:179
LZ4F_contentChecksum_t contentChecksumFlag
Definition lz4frame.h:178
LZ4F_blockMode_t blockMode
Definition lz4frame.h:177
LZ4F_blockChecksum_t blockChecksumFlag
Definition lz4frame.h:182
Definition lz4frame.h:192
LZ4F_frameInfo_t frameInfo
Definition lz4frame.h:193
int compressionLevel
Definition lz4frame.h:194
unsigned favorDecSpeed
Definition lz4frame.h:196
unsigned autoFlush
Definition lz4frame.h:195
Definition inftrees.h:24
size_t size
Definition platform.h:559
#define NULL
Definition getopt1.c:37
const void * dict
Definition zbuff.h:76
const void size_t dictSize
Definition zbuff.h:76
void size_t const void size_t * srcSizePtr
Definition zbuff.h:78