12#define XZ_ID_Subblock 1
20#define XZ_ID_ARM64 0xa
21#define XZ_ID_RISCV 0xb
22#define XZ_ID_LZMA2 0x21
29#define XZ_BLOCK_HEADER_SIZE_MAX 1024
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)
36#define XZ_FILTER_PROPS_SIZE_MAX 20
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)
64#define XZ_FOOTER_SIG_SIZE 2
72#define XZ_FOOTER_SIG_0 'Y'
73#define XZ_FOOTER_SIG_1 'Z'
75#define XZ_STREAM_FLAGS_SIZE 2
76#define XZ_STREAM_CRC_SIZE 4
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)
81#define XZ_CHECK_MASK 0xF
83#define XZ_CHECK_CRC32 1
84#define XZ_CHECK_CRC64 4
85#define XZ_CHECK_SHA256 10
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)
127#define XZ_SIZE_OVERFLOW ((UInt64)(Int64)-1)
172 void (*Init)(
void *p);
196#define MIXCODER_NUM_FILTERS_MAX 4
404#define XzUnpacker_GetPackSizeForIndex(p) ((p)->packSize + (p)->blockHeaderSize + XzFlags_GetCheckSize((p)->streamFlags))
523 const UInt64 *outDataSize,
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
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
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
UInt64 unpackSize
Definition Xz.h:48
UInt64 packSize
Definition Xz.h:47
Byte flags
Definition Xz.h:49
UInt64 unpackSize
Definition Xz.h:111
UInt64 totalSize
Definition Xz.h:112
UInt64 crc64
Definition Xz.h:91
unsigned mode
Definition Xz.h:89
UInt32 crc
Definition Xz.h:90
CSha256 sha
Definition Xz.h:92
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
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
UInt64 id
Definition Xz.h:40
UInt32 propsSize
Definition Xz.h:41
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
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
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
size_t num
Definition Xz.h:134
CXzStream * streams
Definition Xz.h:136
size_t numAllocated
Definition Xz.h:135
void * p
Definition Xz.h:169
Definition poolTests.c:28
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