Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
zstd_decompress_block.c File Reference

Data Structures

struct  seq_t
 
struct  ZSTD_fseState
 
struct  seqState_t
 
struct  ZSTD_OffsetInfo
 

Macros

#define FSE_STATIC_LINKING_ONLY
 
#define LONG_OFFSETS_MAX_EXTRA_BITS_32
 
#define STORED_SEQS   8
 
#define STORED_SEQS_MASK   (STORED_SEQS-1)
 
#define ADVANCED_SEQS   STORED_SEQS
 

Typedefs

typedef size_t(* ZSTD_decompressSequences_t) (ZSTD_DCtx *dctx, void *dst, size_t maxDstSize, const void *seqStart, size_t seqSize, int nbSeq, const ZSTD_longOffset_e isLongOffset, const int frame)
 

Enumerations

enum  ZSTD_longOffset_e { ZSTD_lo_isRegularOffset , ZSTD_lo_isLongOffset =1 }
 

Functions

size_t ZSTD_getcBlockSize (const void *src, size_t srcSize, blockProperties_t *bpPtr)
 
size_t ZSTD_decodeLiteralsBlock (ZSTD_DCtx *dctx, const void *src, size_t srcSize, void *dst, size_t dstCapacity, const streaming_operation streaming)
 
FORCE_INLINE_TEMPLATE void ZSTD_buildFSETable_body (ZSTD_seqSymbol *dt, const short *normalizedCounter, unsigned maxSymbolValue, const U32 *baseValue, const U8 *nbAdditionalBits, unsigned tableLog, void *wksp, size_t wkspSize)
 
void ZSTD_buildFSETable (ZSTD_seqSymbol *dt, const short *normalizedCounter, unsigned maxSymbolValue, const U32 *baseValue, const U8 *nbAdditionalBits, unsigned tableLog, void *wksp, size_t wkspSize, int bmi2)
 
size_t ZSTD_decodeSeqHeaders (ZSTD_DCtx *dctx, int *nbSeqPtr, const void *src, size_t srcSize)
 
HINT_INLINE void ZSTD_overlapCopy8 (BYTE **op, BYTE const **ip, size_t offset)
 
FORCE_NOINLINE size_t ZSTD_execSequenceEnd (BYTE *op, BYTE *const oend, seq_t sequence, const BYTE **litPtr, const BYTE *const litLimit, const BYTE *const prefixStart, const BYTE *const virtualStart, const BYTE *const dictEnd)
 
FORCE_NOINLINE size_t ZSTD_execSequenceEndSplitLitBuffer (BYTE *op, BYTE *const oend, const BYTE *const oend_w, seq_t sequence, const BYTE **litPtr, const BYTE *const litLimit, const BYTE *const prefixStart, const BYTE *const virtualStart, const BYTE *const dictEnd)
 
HINT_INLINE size_t ZSTD_execSequence (BYTE *op, BYTE *const oend, seq_t sequence, const BYTE **litPtr, const BYTE *const litLimit, const BYTE *const prefixStart, const BYTE *const virtualStart, const BYTE *const dictEnd)
 
HINT_INLINE size_t ZSTD_execSequenceSplitLitBuffer (BYTE *op, BYTE *const oend, const BYTE *const oend_w, seq_t sequence, const BYTE **litPtr, const BYTE *const litLimit, const BYTE *const prefixStart, const BYTE *const virtualStart, const BYTE *const dictEnd)
 
FORCE_INLINE_TEMPLATE void ZSTD_updateFseStateWithDInfo (ZSTD_fseState *DStatePtr, BIT_DStream_t *bitD, U16 nextState, U32 nbBits)
 
FORCE_INLINE_TEMPLATE seq_t ZSTD_decodeSequence (seqState_t *seqState, const ZSTD_longOffset_e longOffsets)
 
FORCE_INLINE_TEMPLATE size_t DONT_VECTORIZE ZSTD_decompressSequences_bodySplitLitBuffer (ZSTD_DCtx *dctx, void *dst, size_t maxDstSize, const void *seqStart, size_t seqSize, int nbSeq, const ZSTD_longOffset_e isLongOffset, const int frame)
 
FORCE_INLINE_TEMPLATE size_t DONT_VECTORIZE ZSTD_decompressSequences_body (ZSTD_DCtx *dctx, void *dst, size_t maxDstSize, const void *seqStart, size_t seqSize, int nbSeq, const ZSTD_longOffset_e isLongOffset, const int frame)
 
FORCE_INLINE_TEMPLATE size_t ZSTD_prefetchMatch (size_t prefetchPos, seq_t const sequence, const BYTE *const prefixStart, const BYTE *const dictEnd)
 
FORCE_INLINE_TEMPLATE size_t ZSTD_decompressSequencesLong_body (ZSTD_DCtx *dctx, void *dst, size_t maxDstSize, const void *seqStart, size_t seqSize, int nbSeq, const ZSTD_longOffset_e isLongOffset, const int frame)
 
size_t ZSTD_decompressBlock_internal (ZSTD_DCtx *dctx, void *dst, size_t dstCapacity, const void *src, size_t srcSize, const int frame, const streaming_operation streaming)
 
void ZSTD_checkContinuity (ZSTD_DCtx *dctx, const void *dst, size_t dstSize)
 
size_t ZSTD_decompressBlock_deprecated (ZSTD_DCtx *dctx, void *dst, size_t dstCapacity, const void *src, size_t srcSize)
 
size_t ZSTD_decompressBlock (ZSTD_DCtx *dctx, void *dst, size_t dstCapacity, const void *src, size_t srcSize)
 

Macro Definition Documentation

◆ ADVANCED_SEQS

#define ADVANCED_SEQS   STORED_SEQS

◆ FSE_STATIC_LINKING_ONLY

#define FSE_STATIC_LINKING_ONLY

◆ LONG_OFFSETS_MAX_EXTRA_BITS_32

#define LONG_OFFSETS_MAX_EXTRA_BITS_32
Value:
(ZSTD_WINDOWLOG_MAX_32 > STREAM_ACCUMULATOR_MIN_32 \
? ZSTD_WINDOWLOG_MAX_32 - STREAM_ACCUMULATOR_MIN_32 \
: 0)
#define STREAM_ACCUMULATOR_MIN_32
Definition bitstream.h:46

◆ STORED_SEQS

#define STORED_SEQS   8

◆ STORED_SEQS_MASK

#define STORED_SEQS_MASK   (STORED_SEQS-1)

Typedef Documentation

◆ ZSTD_decompressSequences_t

typedef size_t(* ZSTD_decompressSequences_t) (ZSTD_DCtx *dctx, void *dst, size_t maxDstSize, const void *seqStart, size_t seqSize, int nbSeq, const ZSTD_longOffset_e isLongOffset, const int frame)

Enumeration Type Documentation

◆ ZSTD_longOffset_e

Enumerator
ZSTD_lo_isRegularOffset 
ZSTD_lo_isLongOffset 

Function Documentation

◆ ZSTD_buildFSETable()

void ZSTD_buildFSETable ( ZSTD_seqSymbol * dt,
const short * normalizedCounter,
unsigned maxSymbolValue,
const U32 * baseValue,
const U8 * nbAdditionalBits,
unsigned tableLog,
void * wksp,
size_t wkspSize,
int bmi2 )

◆ ZSTD_buildFSETable_body()

FORCE_INLINE_TEMPLATE void ZSTD_buildFSETable_body ( ZSTD_seqSymbol * dt,
const short * normalizedCounter,
unsigned maxSymbolValue,
const U32 * baseValue,
const U8 * nbAdditionalBits,
unsigned tableLog,
void * wksp,
size_t wkspSize )

◆ ZSTD_checkContinuity()

void ZSTD_checkContinuity ( ZSTD_DCtx * dctx,
const void * dst,
size_t dstSize )

ZSTD_checkContinuity() : check if next dst follows previous position, where decompression ended. If yes, do nothing (continue on current segment). If not, classify previous segment as "external dictionary", and start a new segment. This function cannot fail.

◆ ZSTD_decodeLiteralsBlock()

size_t ZSTD_decodeLiteralsBlock ( ZSTD_DCtx * dctx,
const void * src,
size_t srcSize,
void * dst,
size_t dstCapacity,
const streaming_operation streaming )

ZSTD_decodeLiteralsBlock() : Where it is possible to do so without being stomped by the output during decompression, the literals block will be stored in the dstBuffer. If there is room to do so, it will be stored in full in the excess dst space after where the current block will be output. Otherwise it will be stored at the end of the current dst blockspace, with a small portion being stored in dctx->litExtraBuffer to help keep it "ahead" of the current output write.

Returns
: nb of bytes read from src (< srcSize ) note : symbol not declared but exposed for fullbench

◆ ZSTD_decodeSeqHeaders()

size_t ZSTD_decodeSeqHeaders ( ZSTD_DCtx * dctx,
int * nbSeqPtr,
const void * src,
size_t srcSize )

ZSTD_decodeSeqHeaders() : decode sequence header from src

◆ ZSTD_decodeSequence()

FORCE_INLINE_TEMPLATE seq_t ZSTD_decodeSequence ( seqState_t * seqState,
const ZSTD_longOffset_e longOffsets )

◆ ZSTD_decompressBlock()

size_t ZSTD_decompressBlock ( ZSTD_DCtx * dctx,
void * dst,
size_t dstCapacity,
const void * src,
size_t srcSize )

◆ ZSTD_decompressBlock_deprecated()

size_t ZSTD_decompressBlock_deprecated ( ZSTD_DCtx * dctx,
void * dst,
size_t dstCapacity,
const void * src,
size_t srcSize )

◆ ZSTD_decompressBlock_internal()

size_t ZSTD_decompressBlock_internal ( ZSTD_DCtx * dctx,
void * dst,
size_t dstCapacity,
const void * src,
size_t srcSize,
const int frame,
const streaming_operation streaming )

◆ ZSTD_decompressSequences_body()

FORCE_INLINE_TEMPLATE size_t DONT_VECTORIZE ZSTD_decompressSequences_body ( ZSTD_DCtx * dctx,
void * dst,
size_t maxDstSize,
const void * seqStart,
size_t seqSize,
int nbSeq,
const ZSTD_longOffset_e isLongOffset,
const int frame )

◆ ZSTD_decompressSequences_bodySplitLitBuffer()

FORCE_INLINE_TEMPLATE size_t DONT_VECTORIZE ZSTD_decompressSequences_bodySplitLitBuffer ( ZSTD_DCtx * dctx,
void * dst,
size_t maxDstSize,
const void * seqStart,
size_t seqSize,
int nbSeq,
const ZSTD_longOffset_e isLongOffset,
const int frame )

◆ ZSTD_decompressSequencesLong_body()

FORCE_INLINE_TEMPLATE size_t ZSTD_decompressSequencesLong_body ( ZSTD_DCtx * dctx,
void * dst,
size_t maxDstSize,
const void * seqStart,
size_t seqSize,
int nbSeq,
const ZSTD_longOffset_e isLongOffset,
const int frame )

◆ ZSTD_execSequence()

HINT_INLINE size_t ZSTD_execSequence ( BYTE * op,
BYTE *const oend,
seq_t sequence,
const BYTE ** litPtr,
const BYTE *const litLimit,
const BYTE *const prefixStart,
const BYTE *const virtualStart,
const BYTE *const dictEnd )

◆ ZSTD_execSequenceEnd()

FORCE_NOINLINE size_t ZSTD_execSequenceEnd ( BYTE * op,
BYTE *const oend,
seq_t sequence,
const BYTE ** litPtr,
const BYTE *const litLimit,
const BYTE *const prefixStart,
const BYTE *const virtualStart,
const BYTE *const dictEnd )

◆ ZSTD_execSequenceEndSplitLitBuffer()

FORCE_NOINLINE size_t ZSTD_execSequenceEndSplitLitBuffer ( BYTE * op,
BYTE *const oend,
const BYTE *const oend_w,
seq_t sequence,
const BYTE ** litPtr,
const BYTE *const litLimit,
const BYTE *const prefixStart,
const BYTE *const virtualStart,
const BYTE *const dictEnd )

◆ ZSTD_execSequenceSplitLitBuffer()

HINT_INLINE size_t ZSTD_execSequenceSplitLitBuffer ( BYTE * op,
BYTE *const oend,
const BYTE *const oend_w,
seq_t sequence,
const BYTE ** litPtr,
const BYTE *const litLimit,
const BYTE *const prefixStart,
const BYTE *const virtualStart,
const BYTE *const dictEnd )

◆ ZSTD_getcBlockSize()

size_t ZSTD_getcBlockSize ( const void * src,
size_t srcSize,
blockProperties_t * bpPtr )

ZSTD_getcBlockSize() : Provides the size of compressed block from block header src

◆ ZSTD_overlapCopy8()

HINT_INLINE void ZSTD_overlapCopy8 ( BYTE ** op,
BYTE const ** ip,
size_t offset )

ZSTD_overlapCopy8() : Copies 8 bytes from ip to op and updates op and ip where ip <= op. If the offset is < 8 then the offset is spread to at least 8 bytes.

Precondition: *ip <= *op Postcondition: *op - *op >= 8

◆ ZSTD_prefetchMatch()

FORCE_INLINE_TEMPLATE size_t ZSTD_prefetchMatch ( size_t prefetchPos,
seq_t const sequence,
const BYTE *const prefixStart,
const BYTE *const dictEnd )

◆ ZSTD_updateFseStateWithDInfo()

FORCE_INLINE_TEMPLATE void ZSTD_updateFseStateWithDInfo ( ZSTD_fseState * DStatePtr,
BIT_DStream_t * bitD,
U16 nextState,
U32 nbBits )