Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
Xz.h
Go to the documentation of this file.
1/* Xz.h - Xz interface
22024-01-26 : Igor Pavlov : Public domain */
3
4#ifndef ZIP7_INC_XZ_H
5#define ZIP7_INC_XZ_H
6
7#include "Sha256.h"
8#include "Delta.h"
9
11
12#define XZ_ID_Subblock 1
13#define XZ_ID_Delta 3
14#define XZ_ID_X86 4
15#define XZ_ID_PPC 5
16#define XZ_ID_IA64 6
17#define XZ_ID_ARM 7
18#define XZ_ID_ARMT 8
19#define XZ_ID_SPARC 9
20#define XZ_ID_ARM64 0xa
21#define XZ_ID_RISCV 0xb
22#define XZ_ID_LZMA2 0x21
23
24unsigned Xz_ReadVarInt(const Byte *p, size_t maxSize, UInt64 *value);
25unsigned Xz_WriteVarInt(Byte *buf, UInt64 v);
26
27/* ---------- xz block ---------- */
28
29#define XZ_BLOCK_HEADER_SIZE_MAX 1024
30
31#define XZ_NUM_FILTERS_MAX 4
32#define XZ_BF_NUM_FILTERS_MASK 3
33#define XZ_BF_PACK_SIZE (1 << 6)
34#define XZ_BF_UNPACK_SIZE (1 << 7)
35
36#define XZ_FILTER_PROPS_SIZE_MAX 20
37
44
52
53#define XzBlock_GetNumFilters(p) (((unsigned)(p)->flags & XZ_BF_NUM_FILTERS_MASK) + 1)
54#define XzBlock_HasPackSize(p) (((p)->flags & XZ_BF_PACK_SIZE) != 0)
55#define XzBlock_HasUnpackSize(p) (((p)->flags & XZ_BF_UNPACK_SIZE) != 0)
56#define XzBlock_HasUnsupportedFlags(p) (((p)->flags & ~(XZ_BF_NUM_FILTERS_MASK | XZ_BF_PACK_SIZE | XZ_BF_UNPACK_SIZE)) != 0)
57
59SRes XzBlock_ReadHeader(CXzBlock *p, ISeqInStreamPtr inStream, BoolInt *isIndex, UInt32 *headerSizeRes);
60
61/* ---------- xz stream ---------- */
62
63#define XZ_SIG_SIZE 6
64#define XZ_FOOTER_SIG_SIZE 2
65
66extern const Byte XZ_SIG[XZ_SIG_SIZE];
67
68/*
69extern const Byte XZ_FOOTER_SIG[XZ_FOOTER_SIG_SIZE];
70*/
71
72#define XZ_FOOTER_SIG_0 'Y'
73#define XZ_FOOTER_SIG_1 'Z'
74
75#define XZ_STREAM_FLAGS_SIZE 2
76#define XZ_STREAM_CRC_SIZE 4
77
78#define XZ_STREAM_HEADER_SIZE (XZ_SIG_SIZE + XZ_STREAM_FLAGS_SIZE + XZ_STREAM_CRC_SIZE)
79#define XZ_STREAM_FOOTER_SIZE (XZ_FOOTER_SIG_SIZE + XZ_STREAM_FLAGS_SIZE + XZ_STREAM_CRC_SIZE + 4)
80
81#define XZ_CHECK_MASK 0xF
82#define XZ_CHECK_NO 0
83#define XZ_CHECK_CRC32 1
84#define XZ_CHECK_CRC64 4
85#define XZ_CHECK_SHA256 10
86
87typedef struct
88{
89 unsigned mode;
93} CXzCheck;
94
95void XzCheck_Init(CXzCheck *p, unsigned mode);
96void XzCheck_Update(CXzCheck *p, const void *data, size_t size);
97int XzCheck_Final(CXzCheck *p, Byte *digest);
98
100
101#define XzFlags_IsSupported(f) ((f) <= XZ_CHECK_MASK)
102#define XzFlags_GetCheckType(f) ((f) & XZ_CHECK_MASK)
103#define XzFlags_HasDataCrc32(f) (Xz_GetCheckType(f) == XZ_CHECK_CRC32)
105
107SRes Xz_ReadHeader(CXzStreamFlags *p, ISeqInStreamPtr inStream);
108
114
115typedef struct
116{
118 // Byte _pad[6];
119 size_t numBlocks;
122} CXzStream;
123
124void Xz_Construct(CXzStream *p);
125void Xz_Free(CXzStream *p, ISzAllocPtr alloc);
126
127#define XZ_SIZE_OVERFLOW ((UInt64)(Int64)-1)
128
131
132typedef struct
133{
134 size_t num;
137} CXzs;
138
139void Xzs_Construct(CXzs *p);
140void Xzs_Free(CXzs *p, ISzAllocPtr alloc);
141SRes Xzs_ReadBackward(CXzs *p, ILookInStreamPtr inStream, Int64 *startOffset, ICompressProgressPtr progress, ISzAllocPtr alloc);
142
145
146
147// ECoderStatus values are identical to ELzmaStatus values of LZMA2 decoder
148
149typedef enum
150{
151 CODER_STATUS_NOT_SPECIFIED, /* use main error code instead */
152 CODER_STATUS_FINISHED_WITH_MARK, /* stream was finished with end mark. */
153 CODER_STATUS_NOT_FINISHED, /* stream was not finished */
154 CODER_STATUS_NEEDS_MORE_INPUT /* you must provide more input bytes */
156
157
158// ECoderFinishMode values are identical to ELzmaFinishMode
159
160typedef enum
161{
162 CODER_FINISH_ANY, /* finish at any point */
163 CODER_FINISH_END /* block must be finished at the end */
165
166
167typedef struct
168{
169 void *p; // state object;
170 void (*Free)(void *p, ISzAllocPtr alloc);
171 SRes (*SetProps)(void *p, const Byte *props, size_t propSize, ISzAllocPtr alloc);
172 void (*Init)(void *p);
173 SRes (*Code2)(void *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
174 int srcWasFinished, ECoderFinishMode finishMode,
175 // int *wasFinished,
177 SizeT (*Filter)(void *p, Byte *data, SizeT size);
179
180
189
191
194
195
196#define MIXCODER_NUM_FILTERS_MAX 4
197
198typedef struct
199{
202 unsigned numCoders;
203
206 size_t outWritten; // is equal to lzmaDecoder.dicPos (in outBuf mode)
210 // BoolInt SingleBufMode;
211
218} CMixCoder;
219
220
232
233
274
275/* alloc : aligned for cache line allocation is better */
278void XzUnpacker_SetOutBuf(CXzUnpacker *p, Byte *outBuf, size_t outBufSize);
280
281/*
282 XzUnpacker
283 The sequence for decoding functions:
284 {
285 XzUnpacker_Construct()
286 [Decoding_Calls]
287 XzUnpacker_Free()
288 }
289
290 [Decoding_Calls]
291
292 There are 3 types of interfaces for [Decoding_Calls] calls:
293
294 Interface-1 : Partial output buffers:
295 {
296 XzUnpacker_Init()
297 for()
298 {
299 XzUnpacker_Code();
300 }
301 XzUnpacker_IsStreamWasFinished()
302 }
303
304 Interface-2 : Direct output buffer:
305 Use it, if you know exact size of decoded data, and you need
306 whole xz unpacked data in one output buffer.
307 xz unpacker doesn't allocate additional buffer for lzma2 dictionary in that mode.
308 {
309 XzUnpacker_Init()
310 XzUnpacker_SetOutBufMode(); // to set output buffer and size
311 for()
312 {
313 XzUnpacker_Code(); // (dest = NULL) in XzUnpacker_Code()
314 }
315 XzUnpacker_IsStreamWasFinished()
316 }
317
318 Interface-3 : Direct output buffer : One call full decoding
319 It unpacks whole input buffer to output buffer in one call.
320 It uses Interface-2 internally.
321 {
322 XzUnpacker_CodeFull()
323 XzUnpacker_IsStreamWasFinished()
324 }
325*/
326
327/*
328finishMode:
329 It has meaning only if the decoding reaches output limit (*destLen).
330 CODER_FINISH_ANY - use smallest number of input bytes
331 CODER_FINISH_END - read EndOfStream marker after decoding
332
333Returns:
334 SZ_OK
335 status:
336 CODER_STATUS_NOT_FINISHED,
337 CODER_STATUS_NEEDS_MORE_INPUT - the decoder can return it in two cases:
338 1) it needs more input data to finish current xz stream
339 2) xz stream was finished successfully. But the decoder supports multiple
340 concatented xz streams. So it expects more input data for new xz streams.
341 Call XzUnpacker_IsStreamWasFinished() to check that latest xz stream was finished successfully.
342
343 SZ_ERROR_MEM - Memory allocation error
344 SZ_ERROR_DATA - Data error
345 SZ_ERROR_UNSUPPORTED - Unsupported method or method properties
346 SZ_ERROR_CRC - CRC error
347 // SZ_ERROR_INPUT_EOF - It needs more bytes in input buffer (src).
348
349 SZ_ERROR_NO_ARCHIVE - the error with xz Stream Header with one of the following reasons:
350 - xz Stream Signature failure
351 - CRC32 of xz Stream Header is failed
352 - The size of Stream padding is not multiple of four bytes.
353 It's possible to get that error, if xz stream was finished and the stream
354 contains some another data. In that case you can call XzUnpacker_GetExtraSize()
355 function to get real size of xz stream.
356*/
357
358
360 const Byte *src, SizeT *srcLen, int srcFinished,
361 ECoderFinishMode finishMode, ECoderStatus *status);
362
364 const Byte *src, SizeT *srcLen,
365 ECoderFinishMode finishMode, ECoderStatus *status);
366
367/*
368If you decode full xz stream(s), then you can call XzUnpacker_IsStreamWasFinished()
369after successful XzUnpacker_CodeFull() or after last call of XzUnpacker_Code().
370*/
371
373
374/*
375XzUnpacker_GetExtraSize() returns then number of unconfirmed bytes,
376 if it's in (XZ_STATE_STREAM_HEADER) state or in (XZ_STATE_STREAM_PADDING) state.
377These bytes can be some data after xz archive, or
378it can be start of new xz stream.
379
380Call XzUnpacker_GetExtraSize() after XzUnpacker_Code() function to detect real size of
381xz stream in two cases, if XzUnpacker_Code() returns:
382 res == SZ_OK && status == CODER_STATUS_NEEDS_MORE_INPUT
383 res == SZ_ERROR_NO_ARCHIVE
384*/
385
387
388
389/*
390 for random block decoding:
391 XzUnpacker_Init();
392 set CXzUnpacker::streamFlags
393 XzUnpacker_PrepareToRandomBlockDecoding()
394 loop
395 {
396 XzUnpacker_Code()
397 XzUnpacker_IsBlockFinished()
398 }
399*/
400
403
404#define XzUnpacker_GetPackSizeForIndex(p) ((p)->packSize + (p)->blockHeaderSize + XzFlags_GetCheckSize((p)->streamFlags))
405
406
407
408
409
410
411/* ---- Single-Thread and Multi-Thread xz Decoding with Input/Output Streams ---- */
412
413/*
414 if (CXzDecMtProps::numThreads > 1), the decoder can try to use
415 Multi-Threading. The decoder analyses xz block header, and if
416 there are pack size and unpack size values stored in xz block header,
417 the decoder reads compressed data of block to internal buffers,
418 and then it can start parallel decoding, if there are another blocks.
419 The decoder can switch back to Single-Thread decoding after some conditions.
420
421 The sequence of calls for xz decoding with in/out Streams:
422 {
423 XzDecMt_Create()
424 XzDecMtProps_Init(XzDecMtProps) to set default values of properties
425 // then you can change some XzDecMtProps parameters with required values
426 // here you can set the number of threads and (memUseMax) - the maximum
427 Memory usage for multithreading decoding.
428 for()
429 {
430 XzDecMt_Decode() // one call per one file
431 }
432 XzDecMt_Destroy()
433 }
434*/
435
436
437typedef struct
438{
439 size_t inBufSize_ST; // size of input buffer for Single-Thread decoding
440 size_t outStep_ST; // size of output buffer for Single-Thread decoding
441 BoolInt ignoreErrors; // if set to 1, the decoder can ignore some errors and it skips broken parts of data.
442
443 #ifndef Z7_ST
444 unsigned numThreads; // the number of threads for Multi-Thread decoding. if (umThreads == 1) it will use Single-thread decoding
445 size_t inBufSize_MT; // size of small input data buffers for Multi-Thread decoding. Big number of such small buffers can be created
446 size_t memUseMax; // the limit of total memory usage for Multi-Thread decoding.
447 // it's recommended to set (memUseMax) manually to value that is smaller of total size of RAM in computer.
448 #endif
450
452
453typedef struct CXzDecMt CXzDecMt;
455// Z7_DECLARE_HANDLE(CXzDecMtHandle)
456
457/*
458 alloc : XzDecMt uses CAlignOffsetAlloc internally for addresses allocated by (alloc).
459 allocMid : for big allocations, aligned allocation is better
460*/
461
464
465
466typedef struct
467{
471
472 Byte DataAfterEnd; // there are some additional data after good xz streams, and that data is not new xz stream.
473 Byte DecodingTruncated; // Decoding was Truncated, we need only partial output data
474
475 UInt64 InSize; // pack size processed. That value doesn't include the data after
476 // end of xz stream, if that data was not correct
478
481
482 SRes DecodeRes; // the error code of xz streams data decoding
483 SRes ReadRes; // error code from ISeqInStream:Read()
484 SRes ProgressRes; // error code from ICompressProgress:Progress()
485
486 SRes CombinedRes; // Combined result error code that shows main rusult
487 // = S_OK, if there is no error.
488 // but check also (DataAfterEnd) that can show additional minor errors.
489
490 SRes CombinedRes_Type; // = SZ_ERROR_READ, if error from ISeqInStream
491 // = SZ_ERROR_PROGRESS, if error from ICompressProgress
492 // = SZ_ERROR_WRITE, if error from ISeqOutStream
493 // = SZ_ERROR_* codes for decoding
495
497
498/*
499
500XzDecMt_Decode()
501SRes: it's combined decoding result. It also is equal to stat->CombinedRes.
502
503 SZ_OK - no error
504 check also output value in (stat->DataAfterEnd)
505 that can show additional possible error
506
507 SZ_ERROR_MEM - Memory allocation error
508 SZ_ERROR_NO_ARCHIVE - is not xz archive
509 SZ_ERROR_ARCHIVE - Headers error
510 SZ_ERROR_DATA - Data Error
511 SZ_ERROR_UNSUPPORTED - Unsupported method or method properties
512 SZ_ERROR_CRC - CRC Error
513 SZ_ERROR_INPUT_EOF - it needs more input data
514 SZ_ERROR_WRITE - ISeqOutStream error
515 (SZ_ERROR_READ) - ISeqInStream errors
516 (SZ_ERROR_PROGRESS) - ICompressProgress errors
517 // SZ_ERROR_THREAD - error in multi-threading functions
518 MY_SRes_HRESULT_FROM_WRes(WRes_error) - error in multi-threading function
519*/
520
522 const CXzDecMtProps *props,
523 const UInt64 *outDataSize, // NULL means undefined
524 int finishMode, // 0 - partial unpacking is allowed, 1 - xz stream(s) must be finished
525 ISeqOutStreamPtr outStream,
526 // Byte *outBuf, size_t *outBufSize,
527 ISeqInStreamPtr inStream,
528 // const Byte *inData, size_t inDataSize,
529 CXzStatInfo *stat, // out: decoding results and statistics
530 int *isMT, // out: 0 means that ST (Single-Thread) version was used
531 // 1 means that MT (Multi-Thread) version was used
532 ICompressProgressPtr progress);
533
535
536#endif
int BoolInt
Definition 7zTypes.h:259
size_t SizeT
Definition 7zTypes.h:247
#define EXTERN_C_BEGIN
Definition 7zTypes.h:20
unsigned long long int UInt64
Definition 7zTypes.h:234
int SRes
Definition 7zTypes.h:45
#define EXTERN_C_END
Definition 7zTypes.h:21
long long int Int64
Definition 7zTypes.h:233
#define SHA256_DIGEST_SIZE
Definition Sha256.h:15
void XzUnpacker_Free(CXzUnpacker *p)
Definition XzDec.c:987
UInt64 XzUnpacker_GetExtraSize(const CXzUnpacker *p)
Definition XzDec.c:1397
UInt64 Xzs_GetUnpackSize(const CXzs *p)
Definition XzIn.c:283
SRes XzUnpacker_Code(CXzUnpacker *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, int srcFinished, ECoderFinishMode finishMode, ECoderStatus *status)
Definition XzDec.c:1016
ECoderStatus
Definition Xz.h:150
@ CODER_STATUS_NEEDS_MORE_INPUT
Definition Xz.h:154
@ CODER_STATUS_FINISHED_WITH_MARK
Definition Xz.h:152
@ CODER_STATUS_NOT_FINISHED
Definition Xz.h:153
@ CODER_STATUS_NOT_SPECIFIED
Definition Xz.h:151
SRes XzBlock_ReadHeader(CXzBlock *p, ISeqInStreamPtr inStream, BoolInt *isIndex, UInt32 *headerSizeRes)
Definition XzIn.c:34
void XzDecMt_Destroy(CXzDecMtHandle p)
Definition XzDec.c:1634
#define XZ_FILTER_PROPS_SIZE_MAX
Definition Xz.h:36
SRes Xzs_ReadBackward(CXzs *p, ILookInStreamPtr inStream, Int64 *startOffset, ICompressProgressPtr progress, ISzAllocPtr alloc)
Definition XzIn.c:307
BoolInt XzUnpacker_IsStreamWasFinished(const CXzUnpacker *p)
Definition XzDec.c:1392
unsigned XzFlags_GetCheckSize(CXzStreamFlags f)
Definition Xz.c:41
#define XZ_BLOCK_HEADER_SIZE_MAX
Definition Xz.h:29
CXzDecMt * CXzDecMtHandle
Definition Xz.h:454
UInt64 Xz_GetUnpackSize(const CXzStream *p)
Definition XzIn.c:63
int XzCheck_Final(CXzCheck *p, Byte *digest)
Definition Xz.c:70
SRes XzUnpacker_CodeFull(CXzUnpacker *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ECoderFinishMode finishMode, ECoderStatus *status)
Definition XzDec.c:1373
void Xz_Free(CXzStream *p, ISzAllocPtr alloc)
Definition Xz.c:34
EXzState
Definition Xz.h:222
@ XZ_STATE_STREAM_HEADER
Definition Xz.h:223
@ XZ_STATE_STREAM_FOOTER
Definition Xz.h:226
@ XZ_STATE_BLOCK_FOOTER
Definition Xz.h:230
@ XZ_STATE_BLOCK
Definition Xz.h:229
@ XZ_STATE_STREAM_PADDING
Definition Xz.h:227
@ XZ_STATE_STREAM_INDEX
Definition Xz.h:224
@ XZ_STATE_BLOCK_HEADER
Definition Xz.h:228
@ XZ_STATE_STREAM_INDEX_CRC
Definition Xz.h:225
CXzDecMtHandle XzDecMt_Create(ISzAllocPtr alloc, ISzAllocPtr allocMid)
Definition XzDec.c:1548
SRes Xz_StateCoder_Bc_SetFromMethod_Func(IStateCoder *p, UInt64 id, Xz_Func_BcFilterStateBase_Filter func, ISzAllocPtr alloc)
Definition XzDec.c:270
void XzStatInfo_Clear(CXzStatInfo *p)
Definition XzDec.c:2332
void XzUnpacker_SetOutBuf(CXzUnpacker *p, Byte *outBuf, size_t outBufSize)
Definition XzDec.c:971
BoolInt XzUnpacker_IsBlockFinished(const CXzUnpacker *p)
Definition XzDec.c:1387
SRes XzDecMt_Decode(CXzDecMtHandle p, const CXzDecMtProps *props, const UInt64 *outDataSize, int finishMode, ISeqOutStreamPtr outStream, ISeqInStreamPtr inStream, CXzStatInfo *stat, int *isMT, ICompressProgressPtr progress)
Definition XzDec.c:2616
void Xzs_Free(CXzs *p, ISzAllocPtr alloc)
Definition XzIn.c:264
void XzDecMtProps_Init(CXzDecMtProps *p)
Definition XzDec.c:1432
void XzUnpacker_Init(CXzUnpacker *p)
Definition XzDec.c:952
SRes Xz_ParseHeader(CXzStreamFlags *p, const Byte *buf)
Definition XzDec.c:788
UInt16 CXzStreamFlags
Definition Xz.h:99
#define MIXCODER_NUM_FILTERS_MAX
Definition Xz.h:196
unsigned Xz_WriteVarInt(Byte *buf, UInt64 v)
Definition Xz.c:14
void Xzs_Construct(CXzs *p)
Definition XzIn.c:258
void XzUnpacker_PrepareToRandomBlockDecoding(CXzUnpacker *p)
Definition XzDec.c:993
UInt64 Xzs_GetNumBlocks(const CXzs *p)
Definition XzIn.c:274
SRes Xz_ReadHeader(CXzStreamFlags *p, ISeqInStreamPtr inStream)
Definition XzIn.c:18
void Xz_Construct(CXzStream *p)
Definition Xz.c:27
SRes XzBlock_Parse(CXzBlock *p, const Byte *header)
Definition XzDec.c:838
void XzCheck_Update(CXzCheck *p, const void *data, size_t size)
Definition Xz.c:59
void XzCheck_Init(CXzCheck *p, unsigned mode)
Definition Xz.c:47
#define XZ_SIG_SIZE
Definition Xz.h:63
SizeT(* Xz_Func_BcFilterStateBase_Filter)(CXzBcFilterStateBase *p, Byte *data, SizeT size)
Definition Xz.h:190
const Byte XZ_SIG[XZ_SIG_SIZE]
Definition Xz.c:11
void XzUnpacker_Construct(CXzUnpacker *p, ISzAllocPtr alloc)
Definition XzDec.c:978
ECoderFinishMode
Definition Xz.h:161
@ CODER_FINISH_END
Definition Xz.h:163
@ CODER_FINISH_ANY
Definition Xz.h:162
#define XZ_NUM_FILTERS_MAX
Definition Xz.h:31
UInt64 Xz_GetPackSize(const CXzStream *p)
Definition XzIn.c:74
unsigned Xz_ReadVarInt(const Byte *p, size_t maxSize, UInt64 *value)
Definition XzDec.c:54
static const void * data
Definition XzCrc64.c:50
ECoderStatus
Definition Xz.h:146
EXzState
Definition Xz.h:204
struct _IStateCoder IStateCoder
const char * src
Definition lz4.h:866
char * dest
Definition lz4.h:806
ECoderStatus
Definition Xz.h:149
ECoderFinishMode
Definition Xz.h:160
char buf[N_BUF]
Definition spewG.c:36
Definition Xz.h:164
Definition Xz.h:199
size_t outWritten
Definition Xz.h:206
Byte * outBuf
Definition Xz.h:204
BoolInt wasFinished
Definition Xz.h:207
ECoderStatus status
Definition Xz.h:209
unsigned numCoders
Definition Xz.h:202
SRes res
Definition Xz.h:208
size_t outBufSize
Definition Xz.h:205
ISzAllocPtr alloc
Definition Xz.h:200
Byte * buf
Definition Xz.h:201
Definition Sha256.h:37
Definition Xz.h:182
UInt32 X86_State
Definition Xz.h:186
UInt32 methodId
Definition Xz.h:183
UInt32 delta
Definition Xz.h:184
UInt32 ip
Definition Xz.h:185
Definition Xz.h:46
UInt64 unpackSize
Definition Xz.h:48
UInt64 packSize
Definition Xz.h:47
Byte flags
Definition Xz.h:49
Definition Xz.h:110
UInt64 unpackSize
Definition Xz.h:111
UInt64 totalSize
Definition Xz.h:112
Definition Xz.h:88
UInt64 crc64
Definition Xz.h:91
unsigned mode
Definition Xz.h:89
UInt32 crc
Definition Xz.h:90
CSha256 sha
Definition Xz.h:92
Definition XzDec.c:1487
BoolInt finishMode
Definition XzDec.c:1498
ICompressProgressPtr progress
Definition XzDec.c:1496
ISeqOutStreamPtr outStream
Definition XzDec.c:1495
ISzAllocPtr allocMid
Definition XzDec.c:1489
ISeqInStreamPtr inStream
Definition XzDec.c:1494
Definition Xz.h:438
BoolInt ignoreErrors
Definition Xz.h:441
size_t outStep_ST
Definition Xz.h:440
unsigned numThreads
Definition Xz.h:444
size_t memUseMax
Definition Xz.h:446
size_t inBufSize_MT
Definition Xz.h:445
size_t inBufSize_ST
Definition Xz.h:439
Definition Xz.h:39
UInt64 id
Definition Xz.h:40
UInt32 propsSize
Definition Xz.h:41
Definition Xz.h:467
Byte NumBlocks_Defined
Definition Xz.h:470
SRes DecodeRes
Definition Xz.h:482
UInt64 NumStreams
Definition Xz.h:479
SRes ReadRes
Definition Xz.h:483
SRes ProgressRes
Definition Xz.h:484
Byte NumStreams_Defined
Definition Xz.h:469
Byte DataAfterEnd
Definition Xz.h:472
Byte UnpackSize_Defined
Definition Xz.h:468
UInt64 NumBlocks
Definition Xz.h:480
SRes CombinedRes
Definition Xz.h:486
Byte DecodingTruncated
Definition Xz.h:473
SRes CombinedRes_Type
Definition Xz.h:490
UInt64 InSize
Definition Xz.h:475
UInt64 OutSize
Definition Xz.h:477
Definition Xz.h:116
size_t numBlocks
Definition Xz.h:119
CXzStreamFlags flags
Definition Xz.h:117
CXzBlockSizes * blocks
Definition Xz.h:120
UInt64 startOffset
Definition Xz.h:121
Definition Xz.h:235
CXzStreamFlags streamFlags
Definition Xz.h:241
UInt64 numTotalBlocks
Definition Xz.h:254
UInt64 unpackSize
Definition Xz.h:245
UInt64 numFinishedStreams
Definition Xz.h:253
UInt64 numStartedStreams
Definition Xz.h:252
CXzBlock block
Definition Xz.h:258
Byte * outBuf
Definition Xz.h:267
unsigned decodeOnlyOneBlock
Definition Xz.h:265
BoolInt decodeToStreamSignature
Definition Xz.h:264
UInt64 indexPos
Definition Xz.h:249
UInt64 numBlocks
Definition Xz.h:247
UInt32 crc
Definition Xz.h:256
CMixCoder decoder
Definition Xz.h:257
size_t outBufSize
Definition Xz.h:268
CSha256 sha
Definition Xz.h:260
unsigned pos
Definition Xz.h:237
BoolInt headerParsedOk
Definition Xz.h:263
EXzState state
Definition Xz.h:236
unsigned indexPreSize
Definition Xz.h:239
UInt64 padSize
Definition Xz.h:250
UInt64 packSize
Definition Xz.h:244
BoolInt parseMode
Definition Xz.h:262
unsigned blockHeaderSize
Definition Xz.h:243
unsigned alignPos
Definition Xz.h:238
CXzCheck check
Definition Xz.h:259
size_t outDataWritten
Definition Xz.h:269
UInt64 indexSize
Definition Xz.h:248
Definition Xz.h:133
size_t num
Definition Xz.h:134
CXzStream * streams
Definition Xz.h:136
size_t numAllocated
Definition Xz.h:135
Definition Xz.h:168
void * p
Definition Xz.h:169
Definition 7zTypes.h:460
Definition poolTests.c:28
size_t size
Definition platform.h:559
int __stdcall status(int newvalue)
Definition bzip2dll.c:513
unsigned int UInt32
Definition bzlib_private.h:45
unsigned short UInt16
Definition bzlib_private.h:47
uint finished
Definition dll.c:187
unsigned char Byte
Definition zconf.h:391
#define DELTA_STATE_SIZE
Definition Delta.h:11
#define f(i)
Definition sha256.c:46
const lzma_filter * filters
Definition container.h:315
const lzma_allocator const uint8_t * props
Definition filter.h:362
#define header(is_bt, len_min, ret_op)
Definition lz_encoder_mf.c:191