Rizin
unix-like reverse engineering framework and cli tools
lz4frame.h
Go to the documentation of this file.
1 /*
2  LZ4 auto-framing library
3  Header File
4  Copyright (C) 2011-2017, 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 constant such as LZ4_VERSION_NUMBER.
43  * */
44 
45 #ifndef LZ4F_H_09782039843
46 #define LZ4F_H_09782039843
47 
48 #if defined (__cplusplus)
49 extern "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  **************************************/
103 typedef 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  */
123 typedef enum {
128  LZ4F_max4MB=7
129  LZ4F_OBSOLETE_ENUM(max64KB)
130  LZ4F_OBSOLETE_ENUM(max256KB)
131  LZ4F_OBSOLETE_ENUM(max1MB)
132  LZ4F_OBSOLETE_ENUM(max4MB)
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 */
138 typedef enum {
141  LZ4F_OBSOLETE_ENUM(blockLinked)
142  LZ4F_OBSOLETE_ENUM(blockIndependent)
144 
145 typedef enum {
148  LZ4F_OBSOLETE_ENUM(noContentChecksum)
149  LZ4F_OBSOLETE_ENUM(contentChecksumEnabled)
151 
152 typedef enum {
156 
157 typedef enum {
162 
163 #ifdef LZ4F_ENABLE_OBSOLETE_ENUMS
164 typedef LZ4F_blockSizeID_t blockSizeID_t;
165 typedef LZ4F_blockMode_t blockMode_t;
166 typedef LZ4F_frameType_t frameType_t;
167 typedef LZ4F_contentChecksum_t contentChecksum_t;
168 #endif
169 
175 typedef struct {
176  LZ4F_blockSizeID_t blockSizeID; /* max64KB, max256KB, max1MB, max4MB; 0 == default */
177  LZ4F_blockMode_t blockMode; /* LZ4F_blockLinked, LZ4F_blockIndependent; 0 == default */
178  LZ4F_contentChecksum_t contentChecksumFlag; /* 1: frame terminated with 32-bit checksum of decompressed data; 0: disabled (default) */
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: disabled (default) */
184 
185 #define LZ4F_INIT_FRAMEINFO { LZ4F_default, LZ4F_blockLinked, LZ4F_noContentChecksum, LZ4F_frame, 0ULL, 0U, LZ4F_noBlockChecksum } /* v1.8.3+ */
186 
192 typedef 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 
207 LZ4FLIB_API int LZ4F_compressionLevel_max(void); /* v1.8.0+ */
208 
215 LZ4FLIB_API size_t LZ4F_compressFrameBound(size_t srcSize, const LZ4F_preferences_t* preferencesPtr);
216 
224 LZ4FLIB_API size_t LZ4F_compressFrame(void* dstBuffer, size_t dstCapacity,
225  const void* srcBuffer, size_t srcSize,
226  const LZ4F_preferences_t* preferencesPtr);
227 
228 
229 /*-***********************************
230 * Advanced compression functions
231 *************************************/
232 typedef struct LZ4F_cctx_s LZ4F_cctx; /* incomplete type */
233 typedef LZ4F_cctx* LZ4F_compressionContext_t; /* for compatibility with previous API version */
234 
235 typedef struct {
236  unsigned stableSrc; /* 1 == src content will remain present on future calls to LZ4F_compress(); skip copying src content within tmp buffer */
237  unsigned reserved[3];
239 
240 /*--- Resource Management ---*/
241 
242 #define LZ4F_VERSION 100 /* This number can be used to check for an incompatible API breaking change */
243 LZ4FLIB_API unsigned LZ4F_getVersion(void);
244 
255 
256 
257 /*---- Compression ----*/
258 
259 #define LZ4F_HEADER_SIZE_MIN 7 /* LZ4 Frame header size can vary, depending on selected paramaters */
260 #define LZ4F_HEADER_SIZE_MAX 19
261 
262 /* Size in bytes of a block header in little-endian format. Highest bit indicates if block data is uncompressed */
263 #define LZ4F_BLOCK_HEADER_SIZE 4
264 
265 /* Size in bytes of a block checksum footer in little-endian format. */
266 #define LZ4F_BLOCK_CHECKSUM_SIZE 4
267 
268 /* Size in bytes of the content checksum. */
269 #define LZ4F_CONTENT_CHECKSUM_SIZE 4
270 
279  void* dstBuffer, size_t dstCapacity,
280  const LZ4F_preferences_t* prefsPtr);
281 
297 LZ4FLIB_API size_t LZ4F_compressBound(size_t srcSize, const LZ4F_preferences_t* prefsPtr);
298 
311  void* dstBuffer, size_t dstCapacity,
312  const void* srcBuffer, size_t srcSize,
313  const LZ4F_compressOptions_t* cOptPtr);
314 
324 LZ4FLIB_API size_t LZ4F_flush(LZ4F_cctx* cctx,
325  void* dstBuffer, size_t dstCapacity,
326  const LZ4F_compressOptions_t* cOptPtr);
327 
339  void* dstBuffer, size_t dstCapacity,
340  const LZ4F_compressOptions_t* cOptPtr);
341 
342 
343 /*-*********************************
344 * Decompression functions
345 ***********************************/
346 typedef struct LZ4F_dctx_s LZ4F_dctx; /* incomplete type */
347 typedef LZ4F_dctx* LZ4F_decompressionContext_t; /* compatibility with previous API versions */
348 
349 typedef struct {
350  unsigned stableDst; /* pledges that last 64KB decompressed data will remain available unmodified. This optimization skips storage operations in tmp buffers. */
351  unsigned reserved[3]; /* must be set to zero for forward compatibility */
353 
354 
355 /* Resource management */
356 
368 
369 
370 /*-***********************************
371 * Streaming decompression functions
372 *************************************/
373 
374 #define LZ4F_MIN_SIZE_TO_KNOW_HEADER_LENGTH 5
375 
385 LZ4FLIB_API size_t LZ4F_headerSize(const void* src, size_t srcSize);
386 
431  LZ4F_frameInfo_t* frameInfoPtr,
432  const void* srcBuffer, size_t* srcSizePtr);
433 
466  void* dstBuffer, size_t* dstSizePtr,
467  const void* srcBuffer, size_t* srcSizePtr,
468  const LZ4F_decompressOptions_t* dOptPtr);
469 
470 
476 LZ4FLIB_API void LZ4F_resetDecompressionContext(LZ4F_dctx* dctx); /* always successful */
477 
478 
479 
480 #if defined (__cplusplus)
481 }
482 #endif
483 
484 #endif /* LZ4F_H_09782039843 */
485 
486 #if defined(LZ4F_STATIC_LINKING_ONLY) && !defined(LZ4F_H_STATIC_09782039843)
487 #define LZ4F_H_STATIC_09782039843
488 
489 #if defined (__cplusplus)
490 extern "C" {
491 #endif
492 
493 /* These declarations are not stable and may change in the future.
494  * They are therefore only safe to depend on
495  * when the caller is statically linked against the library.
496  * To access their declarations, define LZ4F_STATIC_LINKING_ONLY.
497  *
498  * By default, these symbols aren't published into shared/dynamic libraries.
499  * You can override this behavior and force them to be published
500  * by defining LZ4F_PUBLISH_STATIC_FUNCTIONS.
501  * Use at your own risk.
502  */
503 #ifdef LZ4F_PUBLISH_STATIC_FUNCTIONS
504 # define LZ4FLIB_STATIC_API LZ4FLIB_API
505 #else
506 # define LZ4FLIB_STATIC_API
507 #endif
508 
509 
510 /* --- Error List --- */
511 #define LZ4F_LIST_ERRORS(ITEM) \
512  ITEM(OK_NoError) \
513  ITEM(ERROR_GENERIC) \
514  ITEM(ERROR_maxBlockSize_invalid) \
515  ITEM(ERROR_blockMode_invalid) \
516  ITEM(ERROR_contentChecksumFlag_invalid) \
517  ITEM(ERROR_compressionLevel_invalid) \
518  ITEM(ERROR_headerVersion_wrong) \
519  ITEM(ERROR_blockChecksum_invalid) \
520  ITEM(ERROR_reservedFlag_set) \
521  ITEM(ERROR_allocation_failed) \
522  ITEM(ERROR_srcSize_tooLarge) \
523  ITEM(ERROR_dstMaxSize_tooSmall) \
524  ITEM(ERROR_frameHeader_incomplete) \
525  ITEM(ERROR_frameType_unknown) \
526  ITEM(ERROR_frameSize_wrong) \
527  ITEM(ERROR_srcPtr_wrong) \
528  ITEM(ERROR_decompressionFailed) \
529  ITEM(ERROR_headerChecksum_invalid) \
530  ITEM(ERROR_contentChecksum_invalid) \
531  ITEM(ERROR_frameDecoding_alreadyStarted) \
532  ITEM(ERROR_maxCode)
533 
534 #define LZ4F_GENERATE_ENUM(ENUM) LZ4F_##ENUM,
535 
536 /* enum list is exposed, to handle specific errors */
537 typedef enum { LZ4F_LIST_ERRORS(LZ4F_GENERATE_ENUM)
538  _LZ4F_dummy_error_enum_for_c89_never_used } LZ4F_errorCodes;
539 
540 LZ4FLIB_STATIC_API LZ4F_errorCodes LZ4F_getErrorCode(size_t functionResult);
541 
542 LZ4FLIB_STATIC_API size_t LZ4F_getBlockSize(unsigned);
543 
544 /**********************************
545  * Bulk processing dictionary API
546  *********************************/
547 
548 /* A Dictionary is useful for the compression of small messages (KB range).
549  * It dramatically improves compression efficiency.
550  *
551  * LZ4 can ingest any input as dictionary, though only the last 64 KB are useful.
552  * Best results are generally achieved by using Zstandard's Dictionary Builder
553  * to generate a high-quality dictionary from a set of samples.
554  *
555  * Loading a dictionary has a cost, since it involves construction of tables.
556  * The Bulk processing dictionary API makes it possible to share this cost
557  * over an arbitrary number of compression jobs, even concurrently,
558  * markedly improving compression latency for these cases.
559  *
560  * The same dictionary will have to be used on the decompression side
561  * for decoding to be successful.
562  * To help identify the correct dictionary at decoding stage,
563  * the frame header allows optional embedding of a dictID field.
564  */
565 typedef struct LZ4F_CDict_s LZ4F_CDict;
566 
572 LZ4FLIB_STATIC_API LZ4F_CDict* LZ4F_createCDict(const void* dictBuffer, size_t dictSize);
573 LZ4FLIB_STATIC_API void LZ4F_freeCDict(LZ4F_CDict* CDict);
574 
575 
586 LZ4FLIB_STATIC_API size_t LZ4F_compressFrame_usingCDict(
587  LZ4F_cctx* cctx,
588  void* dst, size_t dstCapacity,
589  const void* src, size_t srcSize,
590  const LZ4F_CDict* cdict,
591  const LZ4F_preferences_t* preferencesPtr);
592 
593 
601 LZ4FLIB_STATIC_API size_t LZ4F_compressBegin_usingCDict(
602  LZ4F_cctx* cctx,
603  void* dstBuffer, size_t dstCapacity,
604  const LZ4F_CDict* cdict,
605  const LZ4F_preferences_t* prefsPtr);
606 
607 
612 LZ4FLIB_STATIC_API size_t LZ4F_decompress_usingDict(
613  LZ4F_dctx* dctxPtr,
614  void* dstBuffer, size_t* dstSizePtr,
615  const void* srcBuffer, size_t* srcSizePtr,
616  const void* dict, size_t dictSize,
617  const LZ4F_decompressOptions_t* decompressOptionsPtr);
618 
619 #if defined (__cplusplus)
620 }
621 #endif
622 
623 #endif /* defined(LZ4F_STATIC_LINKING_ONLY) && !defined(LZ4F_H_STATIC_09782039843) */
lzma_index * src
Definition: index.h:567
@ reserved
Definition: lm32_isa.h:94
char int srcSize
Definition: lz4.h:697
char * dst
Definition: lz4.h:724
size_t LZ4F_getBlockSize(unsigned blockSizeID)
Definition: lz4frame.c:278
LZ4F_CDict * LZ4F_createCDict(const void *dictBuffer, size_t dictSize)
Definition: lz4frame.c:490
size_t LZ4F_compressFrame_usingCDict(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const void *srcBuffer, size_t srcSize, const LZ4F_CDict *cdict, const LZ4F_preferences_t *preferencesPtr)
Definition: lz4frame.c:373
size_t LZ4F_decompress_usingDict(LZ4F_dctx *dctx, 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:1886
LZ4F_errorCodes LZ4F_getErrorCode(size_t functionResult)
Definition: lz4frame.c:261
void LZ4F_freeCDict(LZ4F_CDict *cdict)
Definition: lz4frame.c:514
size_t LZ4F_compressBegin_usingCDict(LZ4F_cctx *cctxPtr, void *dstBuffer, size_t dstCapacity, const LZ4F_CDict *cdict, const LZ4F_preferences_t *preferencesPtr)
Definition: lz4frame.c:598
LZ4F_blockMode_t
Definition: lz4frame.h:138
@ LZ4F_blockLinked
Definition: lz4frame.h:139
@ LZ4F_blockIndependent
Definition: lz4frame.h:140
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:1097
LZ4FLIB_API size_t LZ4F_compressFrameBound(size_t srcSize, const LZ4F_preferences_t *preferencesPtr)
Definition: lz4frame.c:351
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:825
LZ4FLIB_API LZ4F_errorCode_t LZ4F_freeCompressionContext(LZ4F_cctx *cctx)
Definition: lz4frame.c:550
LZ4FLIB_API int LZ4F_compressionLevel_max(void)
Definition: lz4frame.c:276
LZ4FLIB_API size_t LZ4F_compressEnd(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_compressOptions_t *cOptPtr)
Definition: lz4frame.c:986
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 const char * LZ4F_getErrorName(LZ4F_errorCode_t code)
Definition: lz4frame.c:254
LZ4FLIB_API LZ4F_errorCode_t LZ4F_freeDecompressionContext(LZ4F_dctx *dctx)
Definition: lz4frame.c:1082
LZ4FLIB_API unsigned LZ4F_isError(LZ4F_errorCode_t code)
Definition: lz4frame.c:249
LZ4FLIB_API size_t LZ4F_flush(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_compressOptions_t *cOptPtr)
Definition: lz4frame.c:938
LZ4F_cctx * LZ4F_compressionContext_t
Definition: lz4frame.h:233
LZ4FLIB_API size_t LZ4F_headerSize(const void *src, size_t srcSize)
Definition: lz4frame.c:1212
LZ4FLIB_API LZ4F_errorCode_t LZ4F_createDecompressionContext(LZ4F_dctx **dctxPtr, unsigned version)
Definition: lz4frame.c:1069
LZ4F_dctx * LZ4F_decompressionContext_t
Definition: lz4frame.h:347
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:1384
LZ4FLIB_API size_t LZ4F_getFrameInfo(LZ4F_dctx *dctx, LZ4F_frameInfo_t *frameInfoPtr, const void *srcBuffer, size_t *srcSizePtr)
Definition: lz4frame.c:1253
LZ4FLIB_API size_t LZ4F_compressBegin(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_preferences_t *prefsPtr)
Definition: lz4frame.c:710
LZ4FLIB_API unsigned LZ4F_getVersion(void)
Definition: lz4frame.c:274
LZ4F_contentChecksum_t
Definition: lz4frame.h:145
@ LZ4F_noContentChecksum
Definition: lz4frame.h:146
@ LZ4F_contentChecksumEnabled
Definition: lz4frame.h:147
LZ4FLIB_API LZ4F_errorCode_t LZ4F_createCompressionContext(LZ4F_cctx **cctxPtr, unsigned version)
Definition: lz4frame.c:536
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:724
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:429
@ skippableFrame
Definition: lz4io.c:1361
LZ4F_contentChecksum_t contentChecksumFlag
Definition: lz4frame.h:178
unsigned dictID
Definition: lz4frame.h:181
unsigned long long contentSize
Definition: lz4frame.h:180
LZ4F_frameType_t frameType
Definition: lz4frame.h:179
LZ4F_blockChecksum_t blockChecksumFlag
Definition: lz4frame.h:182
LZ4F_blockMode_t blockMode
Definition: lz4frame.h:177
LZ4F_blockSizeID_t blockSizeID
Definition: lz4frame.h:176
LZ4F_frameInfo_t frameInfo
Definition: lz4frame.h:193
unsigned favorDecSpeed
Definition: lz4frame.h:196
unsigned autoFlush
Definition: lz4frame.h:195
Definition: inftree9.h:24