• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/contrib/zstd/lib/legacy/

Lines Matching refs:dctx

333 *   Requires 2 contexts : 1 for reference (preparedDCtx), which will not be modified, and 1 to run the decompression operation (dctx) */
335 ZSTDv06_DCtx* dctx, const ZSTDv06_DCtx* preparedDCtx,
345 ZSTDLIBv06_API size_t ZSTDv06_decompressBegin(ZSTDv06_DCtx* dctx);
404 ZSTDLIBv06_API size_t ZSTDv06_decompressBlock(ZSTDv06_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize);
2833 size_t ZSTDv06_decompressBegin(ZSTDv06_DCtx* dctx)
2835 dctx->expected = ZSTDv06_frameHeaderSize_min;
2836 dctx->stage = ZSTDds_getFrameHeaderSize;
2837 dctx->previousDstEnd = NULL;
2838 dctx->base = NULL;
2839 dctx->vBase = NULL;
2840 dctx->dictEnd = NULL;
2841 dctx->hufTableX4[0] = HufLog;
2842 dctx->flagRepeatTable = 0;
2848 ZSTDv06_DCtx* dctx = (ZSTDv06_DCtx*)malloc(sizeof(ZSTDv06_DCtx));
2849 if (dctx==NULL) return NULL;
2850 ZSTDv06_decompressBegin(dctx);
2851 return dctx;
2854 size_t ZSTDv06_freeDCtx(ZSTDv06_DCtx* dctx)
2856 free(dctx);
3058 static size_t ZSTDv06_decodeLiteralsBlock(ZSTDv06_DCtx* dctx,
3098 HUFv06_decompress1X2(dctx->litBuffer, litSize, istart+lhSize, litCSize) :
3099 HUFv06_decompress (dctx->litBuffer, litSize, istart+lhSize, litCSize) ))
3102 dctx->litPtr = dctx->litBuffer;
3103 dctx->litSize = litSize;
3104 memset(dctx->litBuffer + dctx->litSize, 0, WILDCOPY_OVERLENGTH);
3112 if (!dctx->flagRepeatTable)
3121 { size_t const errorCode = HUFv06_decompress1X4_usingDTable(dctx->litBuffer, litSize, istart+lhSize, litCSize, dctx->hufTableX4);
3124 dctx->litPtr = dctx->litBuffer;
3125 dctx->litSize = litSize;
3126 memset(dctx->litBuffer + dctx->litSize, 0, WILDCOPY_OVERLENGTH);
3148 memcpy(dctx->litBuffer, istart+lhSize, litSize);
3149 dctx->litPtr = dctx->litBuffer;
3150 dctx->litSize = litSize;
3151 memset(dctx->litBuffer + dctx->litSize, 0, WILDCOPY_OVERLENGTH);
3155 dctx->litPtr = istart+lhSize;
3156 dctx->litSize = litSize;
3177 memset(dctx->litBuffer, istart[lhSize], litSize + WILDCOPY_OVERLENGTH);
3178 dctx->litPtr = dctx->litBuffer;
3179 dctx->litSize = litSize;
3442 ZSTDv06_DCtx* dctx,
3451 const BYTE* litPtr = dctx->litPtr;
3452 const BYTE* const litEnd = litPtr + dctx->litSize;
3453 FSEv06_DTable* DTableLL = dctx->LLTable;
3454 FSEv06_DTable* DTableML = dctx->MLTable;
3455 FSEv06_DTable* DTableOffb = dctx->OffTable;
3456 const BYTE* const base = (const BYTE*) (dctx->base);
3457 const BYTE* const vBase = (const BYTE*) (dctx->vBase);
3458 const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd);
3462 { size_t const seqHSize = ZSTDv06_decodeSeqHeaders(&nbSeq, DTableLL, DTableML, DTableOffb, dctx->flagRepeatTable, ip, seqSize);
3465 dctx->flagRepeatTable = 0;
3518 static void ZSTDv06_checkContinuity(ZSTDv06_DCtx* dctx, const void* dst)
3520 if (dst != dctx->previousDstEnd) { /* not contiguous */
3521 dctx->dictEnd = dctx->previousDstEnd;
3522 dctx->vBase = (const char*)dst - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx->base));
3523 dctx->base = dst;
3524 dctx->previousDstEnd = dst;
3529 static size_t ZSTDv06_decompressBlock_internal(ZSTDv06_DCtx* dctx,
3538 { size_t const litCSize = ZSTDv06_decodeLiteralsBlock(dctx, src, srcSize);
3543 return ZSTDv06_decompressSequences(dctx, dst, dstCapacity, ip, srcSize);
3547 size_t ZSTDv06_decompressBlock(ZSTDv06_DCtx* dctx,
3551 ZSTDv06_checkContinuity(dctx, dst);
3552 return ZSTDv06_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize);
3557 * `dctx` must be properly initialized */
3558 static size_t ZSTDv06_decompressFrame(ZSTDv06_DCtx* dctx,
3577 if (ZSTDv06_decodeFrameHeader(dctx, src, frameHeaderSize)) return ERROR(corruption_detected);
3594 decodedSize = ZSTDv06_decompressBlock_internal(dctx, op, oend-op, ip, cBlockSize);
3621 size_t ZSTDv06_decompress_usingPreparedDCtx(ZSTDv06_DCtx* dctx, const ZSTDv06_DCtx* refDCtx,
3625 ZSTDv06_copyDCtx(dctx, refDCtx);
3626 ZSTDv06_checkContinuity(dctx, dst);
3627 return ZSTDv06_decompressFrame(dctx, dst, dstCapacity, src, srcSize);
3631 size_t ZSTDv06_decompress_usingDict(ZSTDv06_DCtx* dctx,
3636 ZSTDv06_decompressBegin_usingDict(dctx, dict, dictSize);
3637 ZSTDv06_checkContinuity(dctx, dst);
3638 return ZSTDv06_decompressFrame(dctx, dst, dstCapacity, src, srcSize);
3642 size_t ZSTDv06_decompressDCtx(ZSTDv06_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize)
3644 return ZSTDv06_decompress_usingDict(dctx, dst, dstCapacity, src, srcSize, NULL, 0);
3652 ZSTDv06_DCtx* dctx = ZSTDv06_createDCtx();
3653 if (dctx==NULL) return ERROR(memory_allocation);
3654 regenSize = ZSTDv06_decompressDCtx(dctx, dst, dstCapacity, src, srcSize);
3655 ZSTDv06_freeDCtx(dctx);
3658 ZSTDv06_DCtx dctx;
3659 return ZSTDv06_decompressDCtx(&dctx, dst, dstCapacity, src, srcSize);
3724 size_t ZSTDv06_nextSrcSizeToDecompress(ZSTDv06_DCtx* dctx)
3726 return dctx->expected;
3729 size_t ZSTDv06_decompressContinue(ZSTDv06_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize)
3732 if (srcSize != dctx->expected) return ERROR(srcSize_wrong);
3733 if (dstCapacity) ZSTDv06_checkContinuity(dctx, dst);
3736 switch (dctx->stage)
3740 dctx->headerSize = ZSTDv06_frameHeaderSize(src, ZSTDv06_frameHeaderSize_min);
3741 if (ZSTDv06_isError(dctx->headerSize)) return dctx->headerSize;
3742 memcpy(dctx->headerBuffer, src, ZSTDv06_frameHeaderSize_min);
3743 if (dctx->headerSize > ZSTDv06_frameHeaderSize_min) {
3744 dctx->expected = dctx->headerSize - ZSTDv06_frameHeaderSize_min;
3745 dctx->stage = ZSTDds_decodeFrameHeader;
3748 dctx->expected = 0; /* not necessary to copy more */
3752 memcpy(dctx->headerBuffer + ZSTDv06_frameHeaderSize_min, src, dctx->expected);
3753 result = ZSTDv06_decodeFrameHeader(dctx, dctx->headerBuffer, dctx->headerSize);
3755 dctx->expected = ZSTDv06_blockHeaderSize;
3756 dctx->stage = ZSTDds_decodeBlockHeader;
3764 dctx->expected = 0;
3765 dctx->stage = ZSTDds_getFrameHeaderSize;
3767 dctx->expected = cBlockSize;
3768 dctx->bType = bp.blockType;
3769 dctx->stage = ZSTDds_decompressBlock;
3775 switch(dctx->bType)
3778 rSize = ZSTDv06_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize);
3792 dctx->stage = ZSTDds_decodeBlockHeader;
3793 dctx->expected = ZSTDv06_blockHeaderSize;
3794 dctx->previousDstEnd = (char*)dst + rSize;
3803 static void ZSTDv06_refDictContent(ZSTDv06_DCtx* dctx, const void* dict, size_t dictSize)
3805 dctx->dictEnd = dctx->previousDstEnd;
3806 dctx->vBase = (const char*)dict - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx->base));
3807 dctx->base = dict;
3808 dctx->previousDstEnd = (const char*)dict + dictSize;
3811 static size_t ZSTDv06_loadEntropy(ZSTDv06_DCtx* dctx, const void* dict, size_t dictSize)
3815 hSize = HUFv06_readDTableX4(dctx->hufTableX4, dict, dictSize);
3825 { size_t const errorCode = FSEv06_buildDTable(dctx->OffTable, offcodeNCount, offcodeMaxValue, offcodeLog);
3836 { size_t const errorCode = FSEv06_buildDTable(dctx->MLTable, matchlengthNCount, matchlengthMaxValue, matchlengthLog);
3847 { size_t const errorCode = FSEv06_buildDTable(dctx->LLTable, litlengthNCount, litlengthMaxValue, litlengthLog);
3851 dctx->flagRepeatTable = 1;
3855 static size_t ZSTDv06_decompress_insertDictionary(ZSTDv06_DCtx* dctx, const void* dict, size_t dictSize)
3861 ZSTDv06_refDictContent(dctx, dict, dictSize);
3867 eSize = ZSTDv06_loadEntropy(dctx, dict, dictSize);
3873 ZSTDv06_refDictContent(dctx, dict, dictSize);
3879 size_t ZSTDv06_decompressBegin_usingDict(ZSTDv06_DCtx* dctx, const void* dict, size_t dictSize)
3881 { size_t const errorCode = ZSTDv06_decompressBegin(dctx);
3885 size_t const errorCode = ZSTDv06_decompress_insertDictionary(dctx, dict, dictSize);