Lines Matching refs:dctx

73 static void ZSTD_allocateLiteralsBuffer(ZSTD_DCtx* dctx, void* const dst, const size_t dstCapacity,…  in ZSTD_allocateLiteralsBuffer()  argument
79 dctx->litBuffer = (BYTE*)dst + ZSTD_BLOCKSIZE_MAX + WILDCOPY_OVERLENGTH; in ZSTD_allocateLiteralsBuffer()
80 dctx->litBufferEnd = dctx->litBuffer + litSize; in ZSTD_allocateLiteralsBuffer()
81 dctx->litBufferLocation = ZSTD_in_dst; in ZSTD_allocateLiteralsBuffer()
88dctx->litBuffer = (BYTE*)dst + expectedWriteSize - litSize + ZSTD_LITBUFFEREXTRASIZE - WILDCOPY_OV… in ZSTD_allocateLiteralsBuffer()
89 dctx->litBufferEnd = dctx->litBuffer + litSize - ZSTD_LITBUFFEREXTRASIZE; in ZSTD_allocateLiteralsBuffer()
93 dctx->litBuffer = (BYTE*)dst + expectedWriteSize - litSize; in ZSTD_allocateLiteralsBuffer()
94 dctx->litBufferEnd = (BYTE*)dst + expectedWriteSize; in ZSTD_allocateLiteralsBuffer()
96 dctx->litBufferLocation = ZSTD_split; in ZSTD_allocateLiteralsBuffer()
101 dctx->litBuffer = dctx->litExtraBuffer; in ZSTD_allocateLiteralsBuffer()
102 dctx->litBufferEnd = dctx->litBuffer + litSize; in ZSTD_allocateLiteralsBuffer()
103 dctx->litBufferLocation = ZSTD_not_in_dst; in ZSTD_allocateLiteralsBuffer()
108 size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx,
119 size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, in ZSTD_decodeLiteralsBlock() argument
133 RETURN_ERROR_IF(dctx->litEntropy==0, dictionary_corrupted, ""); in ZSTD_decodeLiteralsBlock()
170 … ZSTD_allocateLiteralsBuffer(dctx, dst, dstCapacity, litSize, streaming, expectedWriteSize, 0); in ZSTD_decodeLiteralsBlock()
173 if (dctx->ddictIsCold && (litSize > 768 /* heuristic */)) { in ZSTD_decodeLiteralsBlock()
174 PREFETCH_AREA(dctx->HUFptr, sizeof(dctx->entropy.hufTable)); in ZSTD_decodeLiteralsBlock()
180 dctx->litBuffer, litSize, istart+lhSize, litCSize, in ZSTD_decodeLiteralsBlock()
181 dctx->HUFptr, ZSTD_DCtx_get_bmi2(dctx)); in ZSTD_decodeLiteralsBlock()
184 dctx->litBuffer, litSize, istart+lhSize, litCSize, in ZSTD_decodeLiteralsBlock()
185 dctx->HUFptr, ZSTD_DCtx_get_bmi2(dctx)); in ZSTD_decodeLiteralsBlock()
191 dctx->entropy.hufTable, dctx->litBuffer, litSize, in ZSTD_decodeLiteralsBlock()
192 istart+lhSize, litCSize, dctx->workspace, in ZSTD_decodeLiteralsBlock()
193 sizeof(dctx->workspace)); in ZSTD_decodeLiteralsBlock()
196 dctx->entropy.hufTable, dctx->litBuffer, litSize, in ZSTD_decodeLiteralsBlock()
197 istart+lhSize, litCSize, dctx->workspace, in ZSTD_decodeLiteralsBlock()
198 sizeof(dctx->workspace), ZSTD_DCtx_get_bmi2(dctx)); in ZSTD_decodeLiteralsBlock()
202 dctx->entropy.hufTable, dctx->litBuffer, litSize, in ZSTD_decodeLiteralsBlock()
203 istart+lhSize, litCSize, dctx->workspace, in ZSTD_decodeLiteralsBlock()
204 sizeof(dctx->workspace), ZSTD_DCtx_get_bmi2(dctx)); in ZSTD_decodeLiteralsBlock()
207 if (dctx->litBufferLocation == ZSTD_split) in ZSTD_decodeLiteralsBlock()
209 …ZSTD_memcpy(dctx->litExtraBuffer, dctx->litBufferEnd - ZSTD_LITBUFFEREXTRASIZE, ZSTD_LITBUFFEREXTR… in ZSTD_decodeLiteralsBlock()
210 …ZSTD_memmove(dctx->litBuffer + ZSTD_LITBUFFEREXTRASIZE - WILDCOPY_OVERLENGTH, dctx->litBuffer, lit… in ZSTD_decodeLiteralsBlock()
211 dctx->litBuffer += ZSTD_LITBUFFEREXTRASIZE - WILDCOPY_OVERLENGTH; in ZSTD_decodeLiteralsBlock()
212 dctx->litBufferEnd -= WILDCOPY_OVERLENGTH; in ZSTD_decodeLiteralsBlock()
217 dctx->litPtr = dctx->litBuffer; in ZSTD_decodeLiteralsBlock()
218 dctx->litSize = litSize; in ZSTD_decodeLiteralsBlock()
219 dctx->litEntropy = 1; in ZSTD_decodeLiteralsBlock()
220 if (litEncType==set_compressed) dctx->HUFptr = dctx->entropy.hufTable; in ZSTD_decodeLiteralsBlock()
246 … ZSTD_allocateLiteralsBuffer(dctx, dst, dstCapacity, litSize, streaming, expectedWriteSize, 1); in ZSTD_decodeLiteralsBlock()
249 if (dctx->litBufferLocation == ZSTD_split) in ZSTD_decodeLiteralsBlock()
251 … ZSTD_memcpy(dctx->litBuffer, istart + lhSize, litSize - ZSTD_LITBUFFEREXTRASIZE); in ZSTD_decodeLiteralsBlock()
252 …ZSTD_memcpy(dctx->litExtraBuffer, istart + lhSize + litSize - ZSTD_LITBUFFEREXTRASIZE, ZSTD_LITBUF… in ZSTD_decodeLiteralsBlock()
256 ZSTD_memcpy(dctx->litBuffer, istart + lhSize, litSize); in ZSTD_decodeLiteralsBlock()
258 dctx->litPtr = dctx->litBuffer; in ZSTD_decodeLiteralsBlock()
259 dctx->litSize = litSize; in ZSTD_decodeLiteralsBlock()
263 dctx->litPtr = istart+lhSize; in ZSTD_decodeLiteralsBlock()
264 dctx->litSize = litSize; in ZSTD_decodeLiteralsBlock()
265 dctx->litBufferEnd = dctx->litPtr + litSize; in ZSTD_decodeLiteralsBlock()
266 dctx->litBufferLocation = ZSTD_not_in_dst; in ZSTD_decodeLiteralsBlock()
293 … ZSTD_allocateLiteralsBuffer(dctx, dst, dstCapacity, litSize, streaming, expectedWriteSize, 1); in ZSTD_decodeLiteralsBlock()
294 if (dctx->litBufferLocation == ZSTD_split) in ZSTD_decodeLiteralsBlock()
296 ZSTD_memset(dctx->litBuffer, istart[lhSize], litSize - ZSTD_LITBUFFEREXTRASIZE); in ZSTD_decodeLiteralsBlock()
297 ZSTD_memset(dctx->litExtraBuffer, istart[lhSize], ZSTD_LITBUFFEREXTRASIZE); in ZSTD_decodeLiteralsBlock()
301 ZSTD_memset(dctx->litBuffer, istart[lhSize], litSize); in ZSTD_decodeLiteralsBlock()
303 dctx->litPtr = dctx->litBuffer; in ZSTD_decodeLiteralsBlock()
304 dctx->litSize = litSize; in ZSTD_decodeLiteralsBlock()
653 size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, in ZSTD_decodeSeqHeaders() argument
692 { size_t const llhSize = ZSTD_buildSeqTable(dctx->entropy.LLTable, &dctx->LLTptr, in ZSTD_decodeSeqHeaders()
696 LL_defaultDTable, dctx->fseEntropy, in ZSTD_decodeSeqHeaders()
697 dctx->ddictIsCold, nbSeq, in ZSTD_decodeSeqHeaders()
698 dctx->workspace, sizeof(dctx->workspace), in ZSTD_decodeSeqHeaders()
699 ZSTD_DCtx_get_bmi2(dctx)); in ZSTD_decodeSeqHeaders()
704 { size_t const ofhSize = ZSTD_buildSeqTable(dctx->entropy.OFTable, &dctx->OFTptr, in ZSTD_decodeSeqHeaders()
708 OF_defaultDTable, dctx->fseEntropy, in ZSTD_decodeSeqHeaders()
709 dctx->ddictIsCold, nbSeq, in ZSTD_decodeSeqHeaders()
710 dctx->workspace, sizeof(dctx->workspace), in ZSTD_decodeSeqHeaders()
711 ZSTD_DCtx_get_bmi2(dctx)); in ZSTD_decodeSeqHeaders()
716 { size_t const mlhSize = ZSTD_buildSeqTable(dctx->entropy.MLTable, &dctx->MLTptr, in ZSTD_decodeSeqHeaders()
720 ML_defaultDTable, dctx->fseEntropy, in ZSTD_decodeSeqHeaders()
721 dctx->ddictIsCold, nbSeq, in ZSTD_decodeSeqHeaders()
722 dctx->workspace, sizeof(dctx->workspace), in ZSTD_decodeSeqHeaders()
723 ZSTD_DCtx_get_bmi2(dctx)); in ZSTD_decodeSeqHeaders()
1272 MEM_STATIC int ZSTD_dictionaryIsActive(ZSTD_DCtx const* dctx, BYTE const* prefixStart, BYTE const* … argument
1274 size_t const windowSize = dctx->fParams.windowSize;
1276 if (dctx->dictContentEndForFuzzing == NULL) return 0;
1278 if (prefixStart == dctx->dictContentBeginForFuzzing) return 1;
1280 if (dctx->dictEnd != dctx->dictContentEndForFuzzing) return 0;
1288 ZSTD_DCtx const* dctx, argument
1294 size_t const windowSize = dctx->fParams.windowSize;
1302 if (ZSTD_dictionaryIsActive(dctx, prefixStart, oLitEnd)) {
1303 …size_t const dictSize = (size_t)((char const*)dctx->dictContentEndForFuzzing - (char const*)dctx->…
1312 (void)dctx, (void)op, (void)oend, (void)seq, (void)prefixStart, (void)virtualStart;
1322 ZSTD_decompressSequences_bodySplitLitBuffer( ZSTD_DCtx* dctx, argument
1333 const BYTE* litPtr = dctx->litPtr;
1334 const BYTE* litBufferEnd = dctx->litBufferEnd;
1335 const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart);
1336 const BYTE* const vBase = (const BYTE*) (dctx->virtualStart);
1337 const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd);
1344 dctx->fseEntropy = 1;
1345 { U32 i; for (i=0; i<ZSTD_REP_NUM; i++) seqState.prevOffset[i] = dctx->entropy.rep[i]; }
1349 ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr);
1350 ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr);
1351 ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr);
1423 for (; litPtr + sequence.litLength <= dctx->litBufferEnd; ) {
1427 if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase);
1441 const size_t leftoverLit = dctx->litBufferEnd - litPtr;
1449 litPtr = dctx->litExtraBuffer;
1450 litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE;
1451 dctx->litBufferLocation = ZSTD_not_in_dst;
1456 … if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase);
1493 if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase);
1510 … { U32 i; for (i=0; i<ZSTD_REP_NUM; i++) dctx->entropy.rep[i] = (U32)(seqState.prevOffset[i]); }
1514 …if (dctx->litBufferLocation == ZSTD_split) /* split hasn't been reached yet, first get dst then c…
1522 litPtr = dctx->litExtraBuffer;
1523 litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE;
1524 dctx->litBufferLocation = ZSTD_not_in_dst;
1539 ZSTD_decompressSequences_body(ZSTD_DCtx* dctx, argument
1548 …BYTE* const oend = dctx->litBufferLocation == ZSTD_not_in_dst ? ostart + maxDstSize : dctx->litBuf…
1550 const BYTE* litPtr = dctx->litPtr;
1551 const BYTE* const litEnd = litPtr + dctx->litSize;
1552 const BYTE* const prefixStart = (const BYTE*)(dctx->prefixStart);
1553 const BYTE* const vBase = (const BYTE*)(dctx->virtualStart);
1554 const BYTE* const dictEnd = (const BYTE*)(dctx->dictEnd);
1561 dctx->fseEntropy = 1;
1562 { U32 i; for (i = 0; i < ZSTD_REP_NUM; i++) seqState.prevOffset[i] = dctx->entropy.rep[i]; }
1566 ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr);
1567 ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr);
1568 ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr);
1595 if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase);
1611 … { U32 i; for (i=0; i<ZSTD_REP_NUM; i++) dctx->entropy.rep[i] = (U32)(seqState.prevOffset[i]); }
1627 ZSTD_decompressSequences_default(ZSTD_DCtx* dctx, argument
1633 …return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset…
1637 ZSTD_decompressSequencesSplitLitBuffer_default(ZSTD_DCtx* dctx, argument
1643 …return ZSTD_decompressSequences_bodySplitLitBuffer(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq…
1668 ZSTD_DCtx* dctx, argument
1677 … BYTE* const oend = dctx->litBufferLocation == ZSTD_in_dst ? dctx->litBuffer : ostart + maxDstSize;
1679 const BYTE* litPtr = dctx->litPtr;
1680 const BYTE* litBufferEnd = dctx->litBufferEnd;
1681 const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart);
1682 const BYTE* const dictStart = (const BYTE*) (dctx->virtualStart);
1683 const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd);
1697 dctx->fseEntropy = 1;
1698 { int i; for (i=0; i<ZSTD_REP_NUM; i++) seqState.prevOffset[i] = dctx->entropy.rep[i]; }
1704 ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr);
1705 ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr);
1706 ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr);
1721 …if (dctx->litBufferLocation == ZSTD_split && litPtr + sequences[(seqNb - ADVANCED_SEQS) & STORED_S…
1724 const size_t leftoverLit = dctx->litBufferEnd - litPtr;
1732 litPtr = dctx->litExtraBuffer;
1733 litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE;
1734 dctx->litBufferLocation = ZSTD_not_in_dst;
1738 …if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQ…
1749 oneSeqSize = dctx->litBufferLocation == ZSTD_split ?
1754 …if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQ…
1769 … if (dctx->litBufferLocation == ZSTD_split && litPtr + sequence->litLength > dctx->litBufferEnd)
1771 const size_t leftoverLit = dctx->litBufferEnd - litPtr;
1779 litPtr = dctx->litExtraBuffer;
1780 litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE;
1781 dctx->litBufferLocation = ZSTD_not_in_dst;
1786 …if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequences[seqNb&STORED_SEQS_MASK], prefixStart…
1794 size_t const oneSeqSize = dctx->litBufferLocation == ZSTD_split ?
1799 …if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequences[seqNb&STORED_SEQS_MASK], prefixStart…
1807 … { U32 i; for (i=0; i<ZSTD_REP_NUM; i++) dctx->entropy.rep[i] = (U32)(seqState.prevOffset[i]); }
1811 …if (dctx->litBufferLocation == ZSTD_split) /* first deplete literal buffer in dst, then copy litE…
1819 litPtr = dctx->litExtraBuffer;
1820 litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE;
1834 ZSTD_decompressSequencesLong_default(ZSTD_DCtx* dctx, argument
1840 …return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOf…
1851 ZSTD_decompressSequences_bmi2(ZSTD_DCtx* dctx, argument
1857 …return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset…
1861 ZSTD_decompressSequencesSplitLitBuffer_bmi2(ZSTD_DCtx* dctx, argument
1867 …return ZSTD_decompressSequences_bodySplitLitBuffer(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq…
1873 ZSTD_decompressSequencesLong_bmi2(ZSTD_DCtx* dctx, argument
1879 …return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOf…
1886 ZSTD_DCtx* dctx,
1894 ZSTD_decompressSequences(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, argument
1901 if (ZSTD_DCtx_get_bmi2(dctx)) {
1902 …return ZSTD_decompressSequences_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset…
1905 …return ZSTD_decompressSequences_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOff…
1908 ZSTD_decompressSequencesSplitLitBuffer(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, argument
1915 if (ZSTD_DCtx_get_bmi2(dctx)) {
1916 …return ZSTD_decompressSequencesSplitLitBuffer_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq…
1919 …return ZSTD_decompressSequencesSplitLitBuffer_default(dctx, dst, maxDstSize, seqStart, seqSize, nb…
1931 ZSTD_decompressSequencesLong(ZSTD_DCtx* dctx, argument
1939 if (ZSTD_DCtx_get_bmi2(dctx)) {
1940 …return ZSTD_decompressSequencesLong_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOf…
1943 …return ZSTD_decompressSequencesLong_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLon…
1978 ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, argument
1989 …ZSTD_longOffset_e const isLongOffset = (ZSTD_longOffset_e)(MEM_32bits() && (!frame || (dctx->fPara…
1995 …{ size_t const litCSize = ZSTD_decodeLiteralsBlock(dctx, src, srcSize, dst, dstCapacity, streami…
2010 int usePrefetchDecoder = dctx->ddictIsCold;
2013 size_t const seqHSize = ZSTD_decodeSeqHeaders(dctx, &nbSeq, ip, srcSize);
2023 && (!frame || (dctx->fParams.windowSize > (1<<24)))
2025 U32 const shareLongOffsets = ZSTD_getLongOffsetsShare(dctx->OFTptr);
2031 dctx->ddictIsCold = 0;
2038 …return ZSTD_decompressSequencesLong(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset, fram…
2043 if (dctx->litBufferLocation == ZSTD_split)
2044 …return ZSTD_decompressSequencesSplitLitBuffer(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOf…
2046 … return ZSTD_decompressSequences(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset, frame);
2052 void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst, size_t dstSize) argument
2054 if (dst != dctx->previousDstEnd && dstSize > 0) { /* not contiguous */
2055 dctx->dictEnd = dctx->previousDstEnd;
2056dctx->virtualStart = (const char*)dst - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx-…
2057 dctx->prefixStart = dst;
2058 dctx->previousDstEnd = dst;
2063 size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, argument
2068 ZSTD_checkContinuity(dctx, dst, dstCapacity);
2069 …dSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, /* frame */ 0, not_str…
2070 dctx->previousDstEnd = (char*)dst + dSize;