Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
Xz.h File Reference
#include "Sha256.h"
#include "Delta.h"

Go to the source code of this file.

Data Structures

struct  CXzFilter
 
struct  CXzBlock
 
struct  CXzCheck
 
struct  CXzBlockSizes
 
struct  CXzStream
 
struct  CXzs
 
struct  IStateCoder
 
struct  CXzBcFilterStateBase
 
struct  CMixCoder
 
struct  CXzUnpacker
 
struct  CXzDecMtProps
 
struct  CXzStatInfo
 

Macros

#define XZ_ID_Subblock   1
 
#define XZ_ID_Delta   3
 
#define XZ_ID_X86   4
 
#define XZ_ID_PPC   5
 
#define XZ_ID_IA64   6
 
#define XZ_ID_ARM   7
 
#define XZ_ID_ARMT   8
 
#define XZ_ID_SPARC   9
 
#define XZ_ID_ARM64   0xa
 
#define XZ_ID_RISCV   0xb
 
#define XZ_ID_LZMA2   0x21
 
#define XZ_BLOCK_HEADER_SIZE_MAX   1024
 
#define XZ_NUM_FILTERS_MAX   4
 
#define XZ_BF_NUM_FILTERS_MASK   3
 
#define XZ_BF_PACK_SIZE   (1 << 6)
 
#define XZ_BF_UNPACK_SIZE   (1 << 7)
 
#define XZ_FILTER_PROPS_SIZE_MAX   20
 
#define XzBlock_GetNumFilters(p)
 
#define XzBlock_HasPackSize(p)
 
#define XzBlock_HasUnpackSize(p)
 
#define XzBlock_HasUnsupportedFlags(p)
 
#define XZ_SIG_SIZE   6
 
#define XZ_FOOTER_SIG_SIZE   2
 
#define XZ_FOOTER_SIG_0   'Y'
 
#define XZ_FOOTER_SIG_1   'Z'
 
#define XZ_STREAM_FLAGS_SIZE   2
 
#define XZ_STREAM_CRC_SIZE   4
 
#define XZ_STREAM_HEADER_SIZE   (XZ_SIG_SIZE + XZ_STREAM_FLAGS_SIZE + XZ_STREAM_CRC_SIZE)
 
#define XZ_STREAM_FOOTER_SIZE   (XZ_FOOTER_SIG_SIZE + XZ_STREAM_FLAGS_SIZE + XZ_STREAM_CRC_SIZE + 4)
 
#define XZ_CHECK_MASK   0xF
 
#define XZ_CHECK_NO   0
 
#define XZ_CHECK_CRC32   1
 
#define XZ_CHECK_CRC64   4
 
#define XZ_CHECK_SHA256   10
 
#define XzFlags_IsSupported(f)
 
#define XzFlags_GetCheckType(f)
 
#define XzFlags_HasDataCrc32(f)
 
#define XZ_SIZE_OVERFLOW   ((UInt64)(Int64)-1)
 
#define MIXCODER_NUM_FILTERS_MAX   4
 
#define XzUnpacker_GetPackSizeForIndex(p)
 

Typedefs

typedef UInt16 CXzStreamFlags
 
typedef SizeT(* Xz_Func_BcFilterStateBase_Filter) (CXzBcFilterStateBase *p, Byte *data, SizeT size)
 
typedef struct CXzDecMt CXzDecMt
 
typedef CXzDecMtCXzDecMtHandle
 

Enumerations

enum  ECoderStatus { CODER_STATUS_NOT_SPECIFIED , CODER_STATUS_FINISHED_WITH_MARK , CODER_STATUS_NOT_FINISHED , CODER_STATUS_NEEDS_MORE_INPUT }
 
enum  ECoderFinishMode { CODER_FINISH_ANY , CODER_FINISH_END }
 
enum  EXzState {
  XZ_STATE_STREAM_HEADER , XZ_STATE_STREAM_INDEX , XZ_STATE_STREAM_INDEX_CRC , XZ_STATE_STREAM_FOOTER ,
  XZ_STATE_STREAM_PADDING , XZ_STATE_BLOCK_HEADER , XZ_STATE_BLOCK , XZ_STATE_BLOCK_FOOTER
}
 

Functions

unsigned Xz_ReadVarInt (const Byte *p, size_t maxSize, UInt64 *value)
 
unsigned Xz_WriteVarInt (Byte *buf, UInt64 v)
 
SRes XzBlock_Parse (CXzBlock *p, const Byte *header)
 
SRes XzBlock_ReadHeader (CXzBlock *p, ISeqInStreamPtr inStream, BoolInt *isIndex, UInt32 *headerSizeRes)
 
void XzCheck_Init (CXzCheck *p, unsigned mode)
 
void XzCheck_Update (CXzCheck *p, const void *data, size_t size)
 
int XzCheck_Final (CXzCheck *p, Byte *digest)
 
unsigned XzFlags_GetCheckSize (CXzStreamFlags f)
 
SRes Xz_ParseHeader (CXzStreamFlags *p, const Byte *buf)
 
SRes Xz_ReadHeader (CXzStreamFlags *p, ISeqInStreamPtr inStream)
 
void Xz_Construct (CXzStream *p)
 
void Xz_Free (CXzStream *p, ISzAllocPtr alloc)
 
UInt64 Xz_GetUnpackSize (const CXzStream *p)
 
UInt64 Xz_GetPackSize (const CXzStream *p)
 
void Xzs_Construct (CXzs *p)
 
void Xzs_Free (CXzs *p, ISzAllocPtr alloc)
 
SRes Xzs_ReadBackward (CXzs *p, ILookInStreamPtr inStream, Int64 *startOffset, ICompressProgressPtr progress, ISzAllocPtr alloc)
 
UInt64 Xzs_GetNumBlocks (const CXzs *p)
 
UInt64 Xzs_GetUnpackSize (const CXzs *p)
 
SRes Xz_StateCoder_Bc_SetFromMethod_Func (IStateCoder *p, UInt64 id, Xz_Func_BcFilterStateBase_Filter func, ISzAllocPtr alloc)
 
void XzUnpacker_Construct (CXzUnpacker *p, ISzAllocPtr alloc)
 
void XzUnpacker_Init (CXzUnpacker *p)
 
void XzUnpacker_SetOutBuf (CXzUnpacker *p, Byte *outBuf, size_t outBufSize)
 
void XzUnpacker_Free (CXzUnpacker *p)
 
SRes XzUnpacker_Code (CXzUnpacker *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, int srcFinished, ECoderFinishMode finishMode, ECoderStatus *status)
 
SRes XzUnpacker_CodeFull (CXzUnpacker *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ECoderFinishMode finishMode, ECoderStatus *status)
 
BoolInt XzUnpacker_IsStreamWasFinished (const CXzUnpacker *p)
 
UInt64 XzUnpacker_GetExtraSize (const CXzUnpacker *p)
 
void XzUnpacker_PrepareToRandomBlockDecoding (CXzUnpacker *p)
 
BoolInt XzUnpacker_IsBlockFinished (const CXzUnpacker *p)
 
void XzDecMtProps_Init (CXzDecMtProps *p)
 
CXzDecMtHandle XzDecMt_Create (ISzAllocPtr alloc, ISzAllocPtr allocMid)
 
void XzDecMt_Destroy (CXzDecMtHandle p)
 
void XzStatInfo_Clear (CXzStatInfo *p)
 
SRes XzDecMt_Decode (CXzDecMtHandle p, const CXzDecMtProps *props, const UInt64 *outDataSize, int finishMode, ISeqOutStreamPtr outStream, ISeqInStreamPtr inStream, CXzStatInfo *stat, int *isMT, ICompressProgressPtr progress)
 

Variables

const Byte XZ_SIG [XZ_SIG_SIZE]
 

Macro Definition Documentation

◆ MIXCODER_NUM_FILTERS_MAX

#define MIXCODER_NUM_FILTERS_MAX   4

◆ XZ_BF_NUM_FILTERS_MASK

#define XZ_BF_NUM_FILTERS_MASK   3

◆ XZ_BF_PACK_SIZE

#define XZ_BF_PACK_SIZE   (1 << 6)

◆ XZ_BF_UNPACK_SIZE

#define XZ_BF_UNPACK_SIZE   (1 << 7)

◆ XZ_BLOCK_HEADER_SIZE_MAX

#define XZ_BLOCK_HEADER_SIZE_MAX   1024

◆ XZ_CHECK_CRC32

#define XZ_CHECK_CRC32   1

◆ XZ_CHECK_CRC64

#define XZ_CHECK_CRC64   4

◆ XZ_CHECK_MASK

#define XZ_CHECK_MASK   0xF

◆ XZ_CHECK_NO

#define XZ_CHECK_NO   0

◆ XZ_CHECK_SHA256

#define XZ_CHECK_SHA256   10

◆ XZ_FILTER_PROPS_SIZE_MAX

#define XZ_FILTER_PROPS_SIZE_MAX   20

◆ XZ_FOOTER_SIG_0

#define XZ_FOOTER_SIG_0   'Y'

◆ XZ_FOOTER_SIG_1

#define XZ_FOOTER_SIG_1   'Z'

◆ XZ_FOOTER_SIG_SIZE

#define XZ_FOOTER_SIG_SIZE   2

◆ XZ_ID_ARM

#define XZ_ID_ARM   7

◆ XZ_ID_ARM64

#define XZ_ID_ARM64   0xa

◆ XZ_ID_ARMT

#define XZ_ID_ARMT   8

◆ XZ_ID_Delta

#define XZ_ID_Delta   3

◆ XZ_ID_IA64

#define XZ_ID_IA64   6

◆ XZ_ID_LZMA2

#define XZ_ID_LZMA2   0x21

◆ XZ_ID_PPC

#define XZ_ID_PPC   5

◆ XZ_ID_RISCV

#define XZ_ID_RISCV   0xb

◆ XZ_ID_SPARC

#define XZ_ID_SPARC   9

◆ XZ_ID_Subblock

#define XZ_ID_Subblock   1

◆ XZ_ID_X86

#define XZ_ID_X86   4

◆ XZ_NUM_FILTERS_MAX

#define XZ_NUM_FILTERS_MAX   4

◆ XZ_SIG_SIZE

#define XZ_SIG_SIZE   6

◆ XZ_SIZE_OVERFLOW

#define XZ_SIZE_OVERFLOW   ((UInt64)(Int64)-1)

◆ XZ_STREAM_CRC_SIZE

#define XZ_STREAM_CRC_SIZE   4

◆ XZ_STREAM_FLAGS_SIZE

#define XZ_STREAM_FLAGS_SIZE   2

◆ XZ_STREAM_FOOTER_SIZE

#define XZ_STREAM_FOOTER_SIZE   (XZ_FOOTER_SIG_SIZE + XZ_STREAM_FLAGS_SIZE + XZ_STREAM_CRC_SIZE + 4)

◆ XZ_STREAM_HEADER_SIZE

#define XZ_STREAM_HEADER_SIZE   (XZ_SIG_SIZE + XZ_STREAM_FLAGS_SIZE + XZ_STREAM_CRC_SIZE)

◆ XzBlock_GetNumFilters

#define XzBlock_GetNumFilters ( p)
Value:
(((unsigned)(p)->flags & XZ_BF_NUM_FILTERS_MASK) + 1)
#define XZ_BF_NUM_FILTERS_MASK
Definition Xz.h:32

◆ XzBlock_HasPackSize

#define XzBlock_HasPackSize ( p)
Value:
(((p)->flags & XZ_BF_PACK_SIZE) != 0)
#define XZ_BF_PACK_SIZE
Definition Xz.h:33

◆ XzBlock_HasUnpackSize

#define XzBlock_HasUnpackSize ( p)
Value:
(((p)->flags & XZ_BF_UNPACK_SIZE) != 0)
#define XZ_BF_UNPACK_SIZE
Definition Xz.h:34

◆ XzBlock_HasUnsupportedFlags

#define XzBlock_HasUnsupportedFlags ( p)
Value:

◆ XzFlags_GetCheckType

#define XzFlags_GetCheckType ( f)
Value:
#define XZ_CHECK_MASK
Definition Xz.h:81
#define f(i)
Definition sha256.c:46

◆ XzFlags_HasDataCrc32

#define XzFlags_HasDataCrc32 ( f)
Value:
(Xz_GetCheckType(f) == XZ_CHECK_CRC32)
#define XZ_CHECK_CRC32
Definition Xz.h:83

◆ XzFlags_IsSupported

#define XzFlags_IsSupported ( f)
Value:

◆ XzUnpacker_GetPackSizeForIndex

#define XzUnpacker_GetPackSizeForIndex ( p)
Value:
((p)->packSize + (p)->blockHeaderSize + XzFlags_GetCheckSize((p)->streamFlags))
unsigned XzFlags_GetCheckSize(CXzStreamFlags f)
Definition Xz.c:41

Typedef Documentation

◆ CXzDecMt

typedef struct CXzDecMt CXzDecMt

◆ CXzDecMtHandle

◆ CXzStreamFlags

◆ Xz_Func_BcFilterStateBase_Filter

typedef SizeT(* Xz_Func_BcFilterStateBase_Filter) (CXzBcFilterStateBase *p, Byte *data, SizeT size)

Enumeration Type Documentation

◆ ECoderFinishMode

Enumerator
CODER_FINISH_ANY 
CODER_FINISH_END 

◆ ECoderStatus

Enumerator
CODER_STATUS_NOT_SPECIFIED 
CODER_STATUS_FINISHED_WITH_MARK 
CODER_STATUS_NOT_FINISHED 
CODER_STATUS_NEEDS_MORE_INPUT 

◆ EXzState

enum EXzState
Enumerator
XZ_STATE_STREAM_HEADER 
XZ_STATE_STREAM_INDEX 
XZ_STATE_STREAM_INDEX_CRC 
XZ_STATE_STREAM_FOOTER 
XZ_STATE_STREAM_PADDING 
XZ_STATE_BLOCK_HEADER 
XZ_STATE_BLOCK 
XZ_STATE_BLOCK_FOOTER 

Function Documentation

◆ Xz_Construct()

void Xz_Construct ( CXzStream * p)

◆ Xz_Free()

void Xz_Free ( CXzStream * p,
ISzAllocPtr alloc )

◆ Xz_GetPackSize()

UInt64 Xz_GetPackSize ( const CXzStream * p)

◆ Xz_GetUnpackSize()

UInt64 Xz_GetUnpackSize ( const CXzStream * p)

◆ Xz_ParseHeader()

SRes Xz_ParseHeader ( CXzStreamFlags * p,
const Byte * buf )

◆ Xz_ReadHeader()

SRes Xz_ReadHeader ( CXzStreamFlags * p,
ISeqInStreamPtr inStream )

◆ Xz_ReadVarInt()

unsigned Xz_ReadVarInt ( const Byte * p,
size_t maxSize,
UInt64 * value )

◆ Xz_StateCoder_Bc_SetFromMethod_Func()

SRes Xz_StateCoder_Bc_SetFromMethod_Func ( IStateCoder * p,
UInt64 id,
Xz_Func_BcFilterStateBase_Filter func,
ISzAllocPtr alloc )

◆ Xz_WriteVarInt()

unsigned Xz_WriteVarInt ( Byte * buf,
UInt64 v )

◆ XzBlock_Parse()

SRes XzBlock_Parse ( CXzBlock * p,
const Byte * header )

◆ XzBlock_ReadHeader()

SRes XzBlock_ReadHeader ( CXzBlock * p,
ISeqInStreamPtr inStream,
BoolInt * isIndex,
UInt32 * headerSizeRes )

◆ XzCheck_Final()

int XzCheck_Final ( CXzCheck * p,
Byte * digest )

◆ XzCheck_Init()

void XzCheck_Init ( CXzCheck * p,
unsigned mode )

◆ XzCheck_Update()

void XzCheck_Update ( CXzCheck * p,
const void * data,
size_t size )

◆ XzDecMt_Create()

CXzDecMtHandle XzDecMt_Create ( ISzAllocPtr alloc,
ISzAllocPtr allocMid )

◆ XzDecMt_Decode()

SRes XzDecMt_Decode ( CXzDecMtHandle p,
const CXzDecMtProps * props,
const UInt64 * outDataSize,
int finishMode,
ISeqOutStreamPtr outStream,
ISeqInStreamPtr inStream,
CXzStatInfo * stat,
int * isMT,
ICompressProgressPtr progress )

◆ XzDecMt_Destroy()

void XzDecMt_Destroy ( CXzDecMtHandle p)

◆ XzDecMtProps_Init()

void XzDecMtProps_Init ( CXzDecMtProps * p)

◆ XzFlags_GetCheckSize()

unsigned XzFlags_GetCheckSize ( CXzStreamFlags f)

◆ Xzs_Construct()

void Xzs_Construct ( CXzs * p)

◆ Xzs_Free()

void Xzs_Free ( CXzs * p,
ISzAllocPtr alloc )

◆ Xzs_GetNumBlocks()

UInt64 Xzs_GetNumBlocks ( const CXzs * p)

◆ Xzs_GetUnpackSize()

UInt64 Xzs_GetUnpackSize ( const CXzs * p)

◆ Xzs_ReadBackward()

SRes Xzs_ReadBackward ( CXzs * p,
ILookInStreamPtr inStream,
Int64 * startOffset,
ICompressProgressPtr progress,
ISzAllocPtr alloc )

◆ XzStatInfo_Clear()

void XzStatInfo_Clear ( CXzStatInfo * p)

◆ XzUnpacker_Code()

SRes XzUnpacker_Code ( CXzUnpacker * p,
Byte * dest,
SizeT * destLen,
const Byte * src,
SizeT * srcLen,
int srcFinished,
ECoderFinishMode finishMode,
ECoderStatus * status )

◆ XzUnpacker_CodeFull()

SRes XzUnpacker_CodeFull ( CXzUnpacker * p,
Byte * dest,
SizeT * destLen,
const Byte * src,
SizeT * srcLen,
ECoderFinishMode finishMode,
ECoderStatus * status )

◆ XzUnpacker_Construct()

void XzUnpacker_Construct ( CXzUnpacker * p,
ISzAllocPtr alloc )

◆ XzUnpacker_Free()

void XzUnpacker_Free ( CXzUnpacker * p)

◆ XzUnpacker_GetExtraSize()

UInt64 XzUnpacker_GetExtraSize ( const CXzUnpacker * p)

◆ XzUnpacker_Init()

void XzUnpacker_Init ( CXzUnpacker * p)

◆ XzUnpacker_IsBlockFinished()

BoolInt XzUnpacker_IsBlockFinished ( const CXzUnpacker * p)

◆ XzUnpacker_IsStreamWasFinished()

BoolInt XzUnpacker_IsStreamWasFinished ( const CXzUnpacker * p)

◆ XzUnpacker_PrepareToRandomBlockDecoding()

void XzUnpacker_PrepareToRandomBlockDecoding ( CXzUnpacker * p)

◆ XzUnpacker_SetOutBuf()

void XzUnpacker_SetOutBuf ( CXzUnpacker * p,
Byte * outBuf,
size_t outBufSize )

Variable Documentation

◆ XZ_SIG

const Byte XZ_SIG[XZ_SIG_SIZE]
extern