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)
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 {
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 {
160  LZ4F_OBSOLETE_ENUM(skippableFrame)
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 older APIs, prefer using LZ4F_cctx */
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 
262 
263 
264 /*---- Compression ----*/
265 
266 #define LZ4F_HEADER_SIZE_MIN 7 /* LZ4 Frame header size can vary, depending on selected parameters */
267 #define LZ4F_HEADER_SIZE_MAX 19
268 
269 /* Size in bytes of a block header in little-endian format. Highest bit indicates if block data is uncompressed */
270 #define LZ4F_BLOCK_HEADER_SIZE 4
271 
272 /* Size in bytes of a block checksum footer in little-endian format. */
273 #define LZ4F_BLOCK_CHECKSUM_SIZE 4
274 
275 /* Size in bytes of the content checksum. */
276 #define LZ4F_CONTENT_CHECKSUM_SIZE 4
277 
286  void* dstBuffer, size_t dstCapacity,
287  const LZ4F_preferences_t* prefsPtr);
288 
304 LZ4FLIB_API size_t LZ4F_compressBound(size_t srcSize, const LZ4F_preferences_t* prefsPtr);
305 
319  void* dstBuffer, size_t dstCapacity,
320  const void* srcBuffer, size_t srcSize,
321  const LZ4F_compressOptions_t* cOptPtr);
322 
332 LZ4FLIB_API size_t LZ4F_flush(LZ4F_cctx* cctx,
333  void* dstBuffer, size_t dstCapacity,
334  const LZ4F_compressOptions_t* cOptPtr);
335 
347  void* dstBuffer, size_t dstCapacity,
348  const LZ4F_compressOptions_t* cOptPtr);
349 
350 
351 /*-*********************************
352 * Decompression functions
353 ***********************************/
354 typedef struct LZ4F_dctx_s LZ4F_dctx; /* incomplete type */
355 typedef LZ4F_dctx* LZ4F_decompressionContext_t; /* compatibility with previous API versions */
356 
357 typedef struct {
358  unsigned stableDst; /* pledges that last 64KB decompressed data will remain available unmodified between invocations.
359  * This optimization skips storage operations in tmp buffers. */
360  unsigned skipChecksums; /* disable checksum calculation and verification, even when one is present in frame, to save CPU time.
361  * Setting this option to 1 once disables all checksums for the rest of the frame. */
362  unsigned reserved1; /* must be set to zero for forward compatibility */
363  unsigned reserved0; /* idem */
365 
366 
367 /* Resource management */
368 
381 
382 
383 /*-***********************************
384 * Streaming decompression functions
385 *************************************/
386 
387 #define LZ4F_MAGICNUMBER 0x184D2204U
388 #define LZ4F_MAGIC_SKIPPABLE_START 0x184D2A50U
389 #define LZ4F_MIN_SIZE_TO_KNOW_HEADER_LENGTH 5
390 
400 LZ4FLIB_API size_t LZ4F_headerSize(const void* src, size_t srcSize);
401 
445 LZ4FLIB_API size_t
447  LZ4F_frameInfo_t* frameInfoPtr,
448  const void* srcBuffer, size_t* srcSizePtr);
449 
481 LZ4FLIB_API size_t
483  void* dstBuffer, size_t* dstSizePtr,
484  const void* srcBuffer, size_t* srcSizePtr,
485  const LZ4F_decompressOptions_t* dOptPtr);
486 
487 
493 LZ4FLIB_API void LZ4F_resetDecompressionContext(LZ4F_dctx* dctx); /* always successful */
494 
495 
496 
497 #if defined (__cplusplus)
498 }
499 #endif
500 
501 #endif /* LZ4F_H_09782039843 */
502 
503 #if defined(LZ4F_STATIC_LINKING_ONLY) && !defined(LZ4F_H_STATIC_09782039843)
504 #define LZ4F_H_STATIC_09782039843
505 
506 #if defined (__cplusplus)
507 extern "C" {
508 #endif
509 
510 /* These declarations are not stable and may change in the future.
511  * They are therefore only safe to depend on
512  * when the caller is statically linked against the library.
513  * To access their declarations, define LZ4F_STATIC_LINKING_ONLY.
514  *
515  * By default, these symbols aren't published into shared/dynamic libraries.
516  * You can override this behavior and force them to be published
517  * by defining LZ4F_PUBLISH_STATIC_FUNCTIONS.
518  * Use at your own risk.
519  */
520 #ifdef LZ4F_PUBLISH_STATIC_FUNCTIONS
521 # define LZ4FLIB_STATIC_API LZ4FLIB_API
522 #else
523 # define LZ4FLIB_STATIC_API
524 #endif
525 
526 
527 /* --- Error List --- */
528 #define LZ4F_LIST_ERRORS(ITEM) \
529  ITEM(OK_NoError) \
530  ITEM(ERROR_GENERIC) \
531  ITEM(ERROR_maxBlockSize_invalid) \
532  ITEM(ERROR_blockMode_invalid) \
533  ITEM(ERROR_contentChecksumFlag_invalid) \
534  ITEM(ERROR_compressionLevel_invalid) \
535  ITEM(ERROR_headerVersion_wrong) \
536  ITEM(ERROR_blockChecksum_invalid) \
537  ITEM(ERROR_reservedFlag_set) \
538  ITEM(ERROR_allocation_failed) \
539  ITEM(ERROR_srcSize_tooLarge) \
540  ITEM(ERROR_dstMaxSize_tooSmall) \
541  ITEM(ERROR_frameHeader_incomplete) \
542  ITEM(ERROR_frameType_unknown) \
543  ITEM(ERROR_frameSize_wrong) \
544  ITEM(ERROR_srcPtr_wrong) \
545  ITEM(ERROR_decompressionFailed) \
546  ITEM(ERROR_headerChecksum_invalid) \
547  ITEM(ERROR_contentChecksum_invalid) \
548  ITEM(ERROR_frameDecoding_alreadyStarted) \
549  ITEM(ERROR_compressionState_uninitialized) \
550  ITEM(ERROR_parameter_null) \
551  ITEM(ERROR_maxCode)
552 
553 #define LZ4F_GENERATE_ENUM(ENUM) LZ4F_##ENUM,
554 
555 /* enum list is exposed, to handle specific errors */
556 typedef enum { LZ4F_LIST_ERRORS(LZ4F_GENERATE_ENUM)
557  _LZ4F_dummy_error_enum_for_c89_never_used } LZ4F_errorCodes;
558 
559 LZ4FLIB_STATIC_API LZ4F_errorCodes LZ4F_getErrorCode(size_t functionResult);
560 
561 
566 LZ4FLIB_STATIC_API size_t LZ4F_getBlockSize(LZ4F_blockSizeID_t blockSizeID);
567 
581 LZ4FLIB_STATIC_API size_t
583  void* dstBuffer, size_t dstCapacity,
584  const void* srcBuffer, size_t srcSize,
585  const LZ4F_compressOptions_t* cOptPtr);
586 
587 /**********************************
588  * Bulk processing dictionary API
589  *********************************/
590 
591 /* A Dictionary is useful for the compression of small messages (KB range).
592  * It dramatically improves compression efficiency.
593  *
594  * LZ4 can ingest any input as dictionary, though only the last 64 KB are useful.
595  * Best results are generally achieved by using Zstandard's Dictionary Builder
596  * to generate a high-quality dictionary from a set of samples.
597  *
598  * Loading a dictionary has a cost, since it involves construction of tables.
599  * The Bulk processing dictionary API makes it possible to share this cost
600  * over an arbitrary number of compression jobs, even concurrently,
601  * markedly improving compression latency for these cases.
602  *
603  * The same dictionary will have to be used on the decompression side
604  * for decoding to be successful.
605  * To help identify the correct dictionary at decoding stage,
606  * the frame header allows optional embedding of a dictID field.
607  */
608 typedef struct LZ4F_CDict_s LZ4F_CDict;
609 
615 LZ4FLIB_STATIC_API LZ4F_CDict* LZ4F_createCDict(const void* dictBuffer, size_t dictSize);
616 LZ4FLIB_STATIC_API void LZ4F_freeCDict(LZ4F_CDict* CDict);
617 
618 
629 LZ4FLIB_STATIC_API size_t
631  void* dst, size_t dstCapacity,
632  const void* src, size_t srcSize,
633  const LZ4F_CDict* cdict,
634  const LZ4F_preferences_t* preferencesPtr);
635 
636 
644 LZ4FLIB_STATIC_API size_t
646  void* dstBuffer, size_t dstCapacity,
647  const LZ4F_CDict* cdict,
648  const LZ4F_preferences_t* prefsPtr);
649 
650 
655 LZ4FLIB_STATIC_API size_t
657  void* dstBuffer, size_t* dstSizePtr,
658  const void* srcBuffer, size_t* srcSizePtr,
659  const void* dict, size_t dictSize,
660  const LZ4F_decompressOptions_t* decompressOptionsPtr);
661 
662 
668 typedef void* (*LZ4F_AllocFunction) (void* opaqueState, size_t size);
669 typedef void* (*LZ4F_CallocFunction) (void* opaqueState, size_t size);
670 typedef void (*LZ4F_FreeFunction) (void* opaqueState, void* address);
671 typedef struct {
672  LZ4F_AllocFunction customAlloc;
673  LZ4F_CallocFunction customCalloc; /* optional; when not defined, uses customAlloc + memset */
674  LZ4F_FreeFunction customFree;
675  void* opaqueState;
676 } LZ4F_CustomMem;
677 static
678 #ifdef __GNUC__
679 __attribute__((__unused__))
680 #endif
681 LZ4F_CustomMem const LZ4F_defaultCMem = { NULL, NULL, NULL, NULL };
683 LZ4FLIB_STATIC_API LZ4F_cctx* LZ4F_createCompressionContext_advanced(LZ4F_CustomMem customMem, unsigned version);
684 LZ4FLIB_STATIC_API LZ4F_dctx* LZ4F_createDecompressionContext_advanced(LZ4F_CustomMem customMem, unsigned version);
685 LZ4FLIB_STATIC_API LZ4F_CDict* LZ4F_createCDict_advanced(LZ4F_CustomMem customMem, const void* dictBuffer, size_t dictSize);
686 
687 
688 #if defined (__cplusplus)
689 }
690 #endif
691 
692 #endif /* defined(LZ4F_STATIC_LINKING_ONLY) && !defined(LZ4F_H_STATIC_09782039843) */
LZ4F_freeDecompressionContext
LZ4FLIB_API LZ4F_errorCode_t LZ4F_freeDecompressionContext(LZ4F_dctx *dctx)
Definition: lz4frame.c:1259
LZ4F_contentChecksum_t
LZ4F_contentChecksum_t
Definition: lz4frame.h:145
LZ4F_compressOptions_t
Definition: lz4frame.h:235
LZ4F_flush
LZ4FLIB_API size_t LZ4F_flush(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_compressOptions_t *cOptPtr)
Definition: lz4frame.c:1104
LZ4F_blockChecksumEnabled
@ LZ4F_blockChecksumEnabled
Definition: lz4frame.h:154
LZ4F_max64KB
@ LZ4F_max64KB
Definition: lz4frame.h:125
LZ4F_skippableFrame
@ LZ4F_skippableFrame
Definition: lz4frame.h:159
srcSize
char int srcSize
Definition: lz4.h:765
LZ4F_frameInfo_t::blockSizeID
LZ4F_blockSizeID_t blockSizeID
Definition: lz4frame.h:176
LZ4F_compressionLevel_max
LZ4FLIB_API int LZ4F_compressionLevel_max(void)
Definition: lz4frame.c:323
LZ4F_decompressOptions_t::skipChecksums
unsigned skipChecksums
Definition: lz4frame.h:360
LZ4F_getErrorCode
LZ4F_errorCodes LZ4F_getErrorCode(size_t functionResult)
Definition: lz4frame.c:302
LZ4F_max1MB
@ LZ4F_max1MB
Definition: lz4frame.h:127
LZ4F_getErrorName
const LZ4FLIB_API char * LZ4F_getErrorName(LZ4F_errorCode_t code)
Definition: lz4frame.c:295
LZ4F_freeCompressionContext
LZ4FLIB_API LZ4F_errorCode_t LZ4F_freeCompressionContext(LZ4F_cctx *cctx)
Definition: lz4frame.c:620
LZ4F_noBlockChecksum
@ LZ4F_noBlockChecksum
Definition: lz4frame.h:153
LZ4F_preferences_t::autoFlush
unsigned autoFlush
Definition: lz4frame.h:195
LZ4F_blockMode_t
LZ4F_blockMode_t
Definition: lz4frame.h:138
LZ4F_frameInfo_t
Definition: lz4frame.h:175
LZ4F_decompress_usingDict
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:2065
LZ4F_dctx_s
Definition: lz4frame.c:1206
LZ4F_frameInfo_t::contentSize
unsigned long long contentSize
Definition: lz4frame.h:180
LZ4F_compressOptions_t::stableSrc
unsigned stableSrc
Definition: lz4frame.h:236
LZ4F_preferences_t::compressionLevel
int compressionLevel
Definition: lz4frame.h:194
LZ4F_frameInfo_t::blockChecksumFlag
LZ4F_blockChecksum_t blockChecksumFlag
Definition: lz4frame.h:182
LZ4F_decompressOptions_t::reserved1
unsigned reserved1
Definition: lz4frame.h:362
LZ4F_getVersion
LZ4FLIB_API unsigned LZ4F_getVersion(void)
Definition: lz4frame.c:321
LZ4F_getBlockSize
size_t LZ4F_getBlockSize(LZ4F_blockSizeID_t blockSizeID)
Definition: lz4frame.c:325
LZ4F_compressEnd
LZ4FLIB_API size_t LZ4F_compressEnd(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_compressOptions_t *cOptPtr)
Definition: lz4frame.c:1151
LZ4F_compressionContext_t
LZ4F_cctx * LZ4F_compressionContext_t
Definition: lz4frame.h:233
LZ4F_frameInfo_t::frameType
LZ4F_frameType_t frameType
Definition: lz4frame.h:179
LZ4F_blockChecksum_t
LZ4F_blockChecksum_t
Definition: lz4frame.h:152
LZ4F_createCompressionContext_advanced
LZ4F_cctx * LZ4F_createCompressionContext_advanced(LZ4F_CustomMem customMem, unsigned version)
Definition: lz4frame.c:586
LZ4F_decompressionContext_t
LZ4F_dctx * LZ4F_decompressionContext_t
Definition: lz4frame.h:355
LZ4F_frameInfo_t::contentChecksumFlag
LZ4F_contentChecksum_t contentChecksumFlag
Definition: lz4frame.h:178
LZ4F_uncompressedUpdate
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:1084
LZ4F_isError
LZ4FLIB_API unsigned LZ4F_isError(LZ4F_errorCode_t code)
Definition: lz4frame.c:290
LZ4F_CDict_s
Definition: lz4frame.c:522
LZ4F_blockSizeID_t
LZ4F_blockSizeID_t
Definition: lz4frame.h:123
LZ4F_decompressOptions_t
Definition: lz4frame.h:357
nonstd::span_lite::size
span_constexpr std::size_t size(span< T, Extent > const &spn)
Definition: span.hpp:1554
LZ4F_compressBound
LZ4FLIB_API size_t LZ4F_compressBound(size_t srcSize, const LZ4F_preferences_t *prefsPtr)
Definition: lz4frame.c:809
LZ4F_decompressOptions_t::stableDst
unsigned stableDst
Definition: lz4frame.h:358
zmq::version
void version(int *major_, int *minor_, int *patch_)
Definition: zmq.hpp:360
LZ4F_compressUpdate
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:1060
LZ4F_frameInfo_t::blockMode
LZ4F_blockMode_t blockMode
Definition: lz4frame.h:177
LZ4F_errorCode_t
size_t LZ4F_errorCode_t
Definition: lz4frame.h:103
LZ4F_getFrameInfo
LZ4FLIB_API size_t LZ4F_getFrameInfo(LZ4F_dctx *dctx, LZ4F_frameInfo_t *frameInfoPtr, const void *srcBuffer, size_t *srcSizePtr)
Definition: lz4frame.c:1428
LZ4F_decompressOptions_t::reserved0
unsigned reserved0
Definition: lz4frame.h:363
LZ4F_frameType_t
LZ4F_frameType_t
Definition: lz4frame.h:157
nlohmann::detail::void
j template void())
Definition: json.hpp:4061
LZ4F_blockLinked
@ LZ4F_blockLinked
Definition: lz4frame.h:139
LZ4F_default
@ LZ4F_default
Definition: lz4frame.h:124
LZ4F_max4MB
@ LZ4F_max4MB
Definition: lz4frame.h:128
LZ4F_decompress
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:1556
LZ4F_compressBegin
LZ4FLIB_API size_t LZ4F_compressBegin(LZ4F_cctx *cctx, void *dstBuffer, size_t dstCapacity, const LZ4F_preferences_t *prefsPtr)
Definition: lz4frame.c:795
LZ4FLIB_API
#define LZ4FLIB_API
Definition: lz4frame.h:84
LZ4F_max256KB
@ LZ4F_max256KB
Definition: lz4frame.h:126
LZ4F_compressFrame_usingCDict
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:420
LZ4F_blockIndependent
@ LZ4F_blockIndependent
Definition: lz4frame.h:140
LZ4F_noContentChecksum
@ LZ4F_noContentChecksum
Definition: lz4frame.h:146
LZ4F_frame
@ LZ4F_frame
Definition: lz4frame.h:158
LZ4F_frameInfo_t::dictID
unsigned dictID
Definition: lz4frame.h:181
LZ4F_compressFrameBound
LZ4FLIB_API size_t LZ4F_compressFrameBound(size_t srcSize, const LZ4F_preferences_t *preferencesPtr)
Definition: lz4frame.c:398
LZ4F_OBSOLETE_ENUM
#define LZ4F_OBSOLETE_ENUM(x)
Definition: lz4frame.h:116
LZ4F_createCDict
LZ4F_CDict * LZ4F_createCDict(const void *dictBuffer, size_t dictSize)
Definition: lz4frame.c:565
LZ4F_contentChecksumEnabled
@ LZ4F_contentChecksumEnabled
Definition: lz4frame.h:147
LZ4F_compressBegin_usingCDict
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:677
LZ4F_freeCDict
void LZ4F_freeCDict(LZ4F_CDict *cdict)
Definition: lz4frame.c:571
LZ4F_resetDecompressionContext
LZ4FLIB_API void LZ4F_resetDecompressionContext(LZ4F_dctx *dctx)
Definition: lz4frame.c:1274
LZ4F_preferences_t::favorDecSpeed
unsigned favorDecSpeed
Definition: lz4frame.h:196
LZ4F_preferences_t::frameInfo
LZ4F_frameInfo_t frameInfo
Definition: lz4frame.h:193
LZ4F_headerSize
LZ4FLIB_API size_t LZ4F_headerSize(const void *src, size_t srcSize)
Definition: lz4frame.c:1387
LZ4F_createCDict_advanced
LZ4F_CDict * LZ4F_createCDict_advanced(LZ4F_CustomMem cmem, const void *dictBuffer, size_t dictSize)
Definition: lz4frame.c:530
dst
char * dst
Definition: lz4.h:792
LZ4F_compressFrame
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:475
LZ4F_cctx_s
Definition: lz4frame.c:262
LZ4F_createDecompressionContext_advanced
LZ4F_dctx * LZ4F_createDecompressionContext_advanced(LZ4F_CustomMem customMem, unsigned version)
Definition: lz4frame.c:1230
LZ4F_createDecompressionContext
LZ4FLIB_API LZ4F_errorCode_t LZ4F_createDecompressionContext(LZ4F_dctx **dctxPtr, unsigned version)
Definition: lz4frame.c:1247
LZ4F_createCompressionContext
LZ4FLIB_API LZ4F_errorCode_t LZ4F_createCompressionContext(LZ4F_cctx **cctxPtr, unsigned version)
Definition: lz4frame.c:608
LZ4F_preferences_t
Definition: lz4frame.h:192


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Aug 11 2024 02:24:23