Lines Matching refs:dctx

2319 size_t HUF_decompress4X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t…
2320 size_t HUF_decompress4X_hufOnly(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size…
2321 size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc,…
2322 size_t HUF_decompress4X1_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t…
2323 size_t HUF_decompress4X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, s…
2325 size_t HUF_decompress4X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t…
2326 size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, s…
2466 size_t HUF_decompress1X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t…
2467 size_t HUF_decompress1X_DCtx_wksp (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, s…
2469 size_t HUF_decompress1X1_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t…
2470 size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, s…
2473 size_t HUF_decompress1X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t…
2474 size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, s…
2490 size_t HUF_decompress1X1_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cS…
2493 size_t HUF_decompress4X_hufOnly_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* …
3305 ZSTDLIB_API size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx);
3312 ZSTDLIB_API size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx,
3636 ZSTDLIB_API size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int value);
3644 ZSTDLIB_API size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset);
3889 ZSTDLIB_API size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx,
3944 ZSTDLIB_API size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx,
4058 ZSTDLIB_API size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize);
4069 ZSTDLIB_API size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict);
4087 ZSTDLIB_API size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx,
4096 ZSTDLIB_API size_t ZSTD_sizeof_DCtx(const ZSTD_DCtx* dctx);
4712 ZSTDLIB_API size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t d…
4719 ZSTDLIB_API size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, const void* dict, size_t dict…
4724 ZSTDLIB_API size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixS…
4733 ZSTDLIB_API size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize);
4777 ZSTDLIB_API size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format);
4786 ZSTD_DCtx* dctx,
5118 ZSTDLIB_API size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx);
5119 ZSTDLIB_API size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSiz…
5120 ZSTDLIB_API size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict);
5122 ZSTDLIB_API size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx);
5123 ZSTDLIB_API size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const vo…
5126 ZSTDLIB_API void ZSTD_copyDCtx(ZSTD_DCtx* dctx, const ZSTD_DCtx* preparedDCtx);
5128 ZSTDLIB_API ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx);
5167 ZSTDLIB_API size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void*…
5168 ZSTDLIB_API size_t ZSTD_insertBlock (ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize);…
6735 size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr,
21763 static size_t HUF_decompress4X1_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, in HUF_decompress4X1_DCtx_wksp_bmi2() argument
21769 size_t const hSize = HUF_readDTableX1_wksp (dctx, cSrc, cSrcSize, in HUF_decompress4X1_DCtx_wksp_bmi2()
21775 return HUF_decompress4X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, bmi2); in HUF_decompress4X1_DCtx_wksp_bmi2()
21778 size_t HUF_decompress4X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, in HUF_decompress4X1_DCtx_wksp() argument
21782 …return HUF_decompress4X1_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, 0… in HUF_decompress4X1_DCtx_wksp()
21786 size_t HUF_decompress4X1_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_… in HUF_decompress4X1_DCtx() argument
21789 return HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, in HUF_decompress4X1_DCtx()
22264 static size_t HUF_decompress4X2_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, in HUF_decompress4X2_DCtx_wksp_bmi2() argument
22270 size_t hSize = HUF_readDTableX2_wksp(dctx, cSrc, cSrcSize, in HUF_decompress4X2_DCtx_wksp_bmi2()
22276 return HUF_decompress4X2_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, bmi2); in HUF_decompress4X2_DCtx_wksp_bmi2()
22279 size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, in HUF_decompress4X2_DCtx_wksp() argument
22283 …return HUF_decompress4X2_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, /… in HUF_decompress4X2_DCtx_wksp()
22287 size_t HUF_decompress4X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, in HUF_decompress4X2_DCtx() argument
22291 return HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, in HUF_decompress4X2_DCtx()
22430 size_t HUF_decompress4X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t… in HUF_decompress4X_DCtx() argument
22442 return HUF_decompress4X1_DCtx(dctx, dst, dstSize, cSrc, cSrcSize); in HUF_decompress4X_DCtx()
22446 return HUF_decompress4X2_DCtx(dctx, dst, dstSize, cSrc, cSrcSize); in HUF_decompress4X_DCtx()
22448 return algoNb ? HUF_decompress4X2_DCtx(dctx, dst, dstSize, cSrc, cSrcSize) : in HUF_decompress4X_DCtx()
22449 HUF_decompress4X1_DCtx(dctx, dst, dstSize, cSrc, cSrcSize) ; in HUF_decompress4X_DCtx()
22454 size_t HUF_decompress4X_hufOnly(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size… in HUF_decompress4X_hufOnly() argument
22457 return HUF_decompress4X_hufOnly_wksp(dctx, dst, dstSize, cSrc, cSrcSize, in HUF_decompress4X_hufOnly()
22462 size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, in HUF_decompress4X_hufOnly_wksp() argument
22475 return HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize); in HUF_decompress4X_hufOnly_wksp()
22479 return HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize); in HUF_decompress4X_hufOnly_wksp()
22481 return algoNb ? HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, in HUF_decompress4X_hufOnly_wksp()
22483 … HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize); in HUF_decompress4X_hufOnly_wksp()
22488 size_t HUF_decompress1X_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, in HUF_decompress1X_DCtx_wksp() argument
22502 return HUF_decompress1X1_DCtx_wksp(dctx, dst, dstSize, cSrc, in HUF_decompress1X_DCtx_wksp()
22507 return HUF_decompress1X2_DCtx_wksp(dctx, dst, dstSize, cSrc, in HUF_decompress1X_DCtx_wksp()
22510 return algoNb ? HUF_decompress1X2_DCtx_wksp(dctx, dst, dstSize, cSrc, in HUF_decompress1X_DCtx_wksp()
22512 HUF_decompress1X1_DCtx_wksp(dctx, dst, dstSize, cSrc, in HUF_decompress1X_DCtx_wksp()
22518 size_t HUF_decompress1X_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, in HUF_decompress1X_DCtx() argument
22522 return HUF_decompress1X_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, in HUF_decompress1X_DCtx()
22545 size_t HUF_decompress1X1_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cS… in HUF_decompress1X1_DCtx_wksp_bmi2() argument
22549 size_t const hSize = HUF_readDTableX1_wksp(dctx, cSrc, cSrcSize, workSpace, wkspSize); in HUF_decompress1X1_DCtx_wksp_bmi2()
22554 return HUF_decompress1X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, bmi2); in HUF_decompress1X1_DCtx_wksp_bmi2()
22575 size_t HUF_decompress4X_hufOnly_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* … in HUF_decompress4X_hufOnly_wksp_bmi2() argument
22585 …return HUF_decompress4X1_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, b… in HUF_decompress4X_hufOnly_wksp_bmi2()
22589 …return HUF_decompress4X2_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, b… in HUF_decompress4X_hufOnly_wksp_bmi2()
22591 …return algoNb ? HUF_decompress4X2_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wk… in HUF_decompress4X_hufOnly_wksp_bmi2()
22592 … HUF_decompress4X1_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, bmi2); in HUF_decompress4X_hufOnly_wksp_bmi2()
22807 void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst);
22852 void ZSTD_copyDDictParameters(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict);
22953 size_t ZSTDv01_freeDCtx(ZSTDv01_Dctx* dctx);
22962 size_t ZSTDv01_resetDCtx(ZSTDv01_Dctx* dctx);
22964 size_t ZSTDv01_nextSrcSizeToDecompress(ZSTDv01_Dctx* dctx);
22965 size_t ZSTDv01_decompressContinue(ZSTDv01_Dctx* dctx, void* dst, size_t maxDstSize, const void* src…
23051 size_t ZSTDv02_freeDCtx(ZSTDv02_Dctx* dctx);
23060 size_t ZSTDv02_resetDCtx(ZSTDv02_Dctx* dctx);
23062 size_t ZSTDv02_nextSrcSizeToDecompress(ZSTDv02_Dctx* dctx);
23063 size_t ZSTDv02_decompressContinue(ZSTDv02_Dctx* dctx, void* dst, size_t maxDstSize, const void* src…
23148 size_t ZSTDv03_freeDCtx(ZSTDv03_Dctx* dctx);
23157 size_t ZSTDv03_resetDCtx(ZSTDv03_Dctx* dctx);
23159 size_t ZSTDv03_nextSrcSizeToDecompress(ZSTDv03_Dctx* dctx);
23160 size_t ZSTDv03_decompressContinue(ZSTDv03_Dctx* dctx, void* dst, size_t maxDstSize, const void* src…
23245 size_t ZSTDv04_freeDCtx(ZSTDv04_Dctx* dctx);
23247 size_t ZSTDv04_decompressDCtx(ZSTDv04_Dctx* dctx,
23255 size_t ZSTDv04_resetDCtx(ZSTDv04_Dctx* dctx);
23257 size_t ZSTDv04_nextSrcSizeToDecompress(ZSTDv04_Dctx* dctx);
23258 size_t ZSTDv04_decompressContinue(ZSTDv04_Dctx* dctx, void* dst, size_t maxDstSize, const void* src…
23273 size_t ZBUFFv04_freeDCtx(ZBUFFv04_DCtx* dctx);
23275 size_t ZBUFFv04_decompressInit(ZBUFFv04_DCtx* dctx);
23276 size_t ZBUFFv04_decompressWithDictionary(ZBUFFv04_DCtx* dctx, const void* dict, size_t dictSize);
23278 size_t ZBUFFv04_decompressContinue(ZBUFFv04_DCtx* dctx, void* dst, size_t* maxDstSizePtr, const voi…
23392 size_t ZSTDv05_freeDCtx(ZSTDv05_DCtx* dctx); /*!< @return : errorCode */
23406 size_t ZSTDv05_decompress_usingDict(ZSTDv05_DCtx* dctx,
23422 size_t ZSTDv05_decompressBegin_usingDict(ZSTDv05_DCtx* dctx, const void* dict, size_t dictSize);
23424 size_t ZSTDv05_nextSrcSizeToDecompress(ZSTDv05_DCtx* dctx);
23425 size_t ZSTDv05_decompressContinue(ZSTDv05_DCtx* dctx, void* dst, size_t dstCapacity, const void* sr…
23433 size_t ZBUFFv05_freeDCtx(ZBUFFv05_DCtx* dctx);
23435 size_t ZBUFFv05_decompressInit(ZBUFFv05_DCtx* dctx);
23436 size_t ZBUFFv05_decompressInitDictionary(ZBUFFv05_DCtx* dctx, const void* dict, size_t dictSize);
23438 size_t ZBUFFv05_decompressContinue(ZBUFFv05_DCtx* dctx,
23569 ZSTDLIBv06_API size_t ZSTDv06_freeDCtx(ZSTDv06_DCtx* dctx); /*!< @return : errorCode */
23583 ZSTDLIBv06_API size_t ZSTDv06_decompress_usingDict(ZSTDv06_DCtx* dctx,
23596 ZSTDLIBv06_API size_t ZSTDv06_decompressBegin_usingDict(ZSTDv06_DCtx* dctx, const void* dict, size_…
23597 ZSTDLIBv06_API void ZSTDv06_copyDCtx(ZSTDv06_DCtx* dctx, const ZSTDv06_DCtx* preparedDCtx);
23599 ZSTDLIBv06_API size_t ZSTDv06_nextSrcSizeToDecompress(ZSTDv06_DCtx* dctx);
23600 ZSTDLIBv06_API size_t ZSTDv06_decompressContinue(ZSTDv06_DCtx* dctx, void* dst, size_t dstCapacity,…
23610 ZSTDLIBv06_API size_t ZBUFFv06_freeDCtx(ZBUFFv06_DCtx* dctx);
23612 ZSTDLIBv06_API size_t ZBUFFv06_decompressInit(ZBUFFv06_DCtx* dctx);
23613 ZSTDLIBv06_API size_t ZBUFFv06_decompressInitDictionary(ZBUFFv06_DCtx* dctx, const void* dict, size…
23615 ZSTDLIBv06_API size_t ZBUFFv06_decompressContinue(ZBUFFv06_DCtx* dctx,
23747 ZSTDLIBv07_API size_t ZSTDv07_freeDCtx(ZSTDv07_DCtx* dctx); /*!< @return : errorCode */
23761 ZSTDLIBv07_API size_t ZSTDv07_decompress_usingDict(ZSTDv07_DCtx* dctx,
23780 ZSTDLIBv07_API size_t ZSTDv07_decompress_usingDDict(ZSTDv07_DCtx* dctx,
23802 ZSTDLIBv07_API size_t ZBUFFv07_freeDCtx(ZBUFFv07_DCtx* dctx);
23804 ZSTDLIBv07_API size_t ZBUFFv07_decompressInit(ZBUFFv07_DCtx* dctx);
23805 ZSTDLIBv07_API size_t ZBUFFv07_decompressInitDictionary(ZBUFFv07_DCtx* dctx, const void* dict, size…
23807 ZSTDLIBv07_API size_t ZBUFFv07_decompressContinue(ZBUFFv07_DCtx* dctx,
24106 …ZBUFFv04_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv04_createDCtx() : (ZBUFFv04_DCtx*)*legac… in ZSTD_initLegacyStream() local
24107 if (dctx==NULL) return ERROR(memory_allocation); in ZSTD_initLegacyStream()
24108 ZBUFFv04_decompressInit(dctx); in ZSTD_initLegacyStream()
24109 ZBUFFv04_decompressWithDictionary(dctx, dict, dictSize); in ZSTD_initLegacyStream()
24110 *legacyContext = dctx; in ZSTD_initLegacyStream()
24117 …ZBUFFv05_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv05_createDCtx() : (ZBUFFv05_DCtx*)*legac… in ZSTD_initLegacyStream() local
24118 if (dctx==NULL) return ERROR(memory_allocation); in ZSTD_initLegacyStream()
24119 ZBUFFv05_decompressInitDictionary(dctx, dict, dictSize); in ZSTD_initLegacyStream()
24120 *legacyContext = dctx; in ZSTD_initLegacyStream()
24127 …ZBUFFv06_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv06_createDCtx() : (ZBUFFv06_DCtx*)*legac… in ZSTD_initLegacyStream() local
24128 if (dctx==NULL) return ERROR(memory_allocation); in ZSTD_initLegacyStream()
24129 ZBUFFv06_decompressInitDictionary(dctx, dict, dictSize); in ZSTD_initLegacyStream()
24130 *legacyContext = dctx; in ZSTD_initLegacyStream()
24137 …ZBUFFv07_DCtx* dctx = (prevVersion != newVersion) ? ZBUFFv07_createDCtx() : (ZBUFFv07_DCtx*)*legac… in ZSTD_initLegacyStream() local
24138 if (dctx==NULL) return ERROR(memory_allocation); in ZSTD_initLegacyStream()
24139 ZBUFFv07_decompressInitDictionary(dctx, dict, dictSize); in ZSTD_initLegacyStream()
24140 *legacyContext = dctx; in ZSTD_initLegacyStream()
24164 ZBUFFv04_DCtx* dctx = (ZBUFFv04_DCtx*) legacyContext; in ZSTD_decompressLegacyStream() local
24169 … size_t const hintSize = ZBUFFv04_decompressContinue(dctx, dst, &decodedSize, src, &readSize); in ZSTD_decompressLegacyStream()
24178 ZBUFFv05_DCtx* dctx = (ZBUFFv05_DCtx*) legacyContext; in ZSTD_decompressLegacyStream() local
24183 … size_t const hintSize = ZBUFFv05_decompressContinue(dctx, dst, &decodedSize, src, &readSize); in ZSTD_decompressLegacyStream()
24192 ZBUFFv06_DCtx* dctx = (ZBUFFv06_DCtx*) legacyContext; in ZSTD_decompressLegacyStream() local
24197 … size_t const hintSize = ZBUFFv06_decompressContinue(dctx, dst, &decodedSize, src, &readSize); in ZSTD_decompressLegacyStream()
24206 ZBUFFv07_DCtx* dctx = (ZBUFFv07_DCtx*) legacyContext; in ZSTD_decompressLegacyStream() local
24211 … size_t const hintSize = ZBUFFv07_decompressContinue(dctx, dst, &decodedSize, src, &readSize); in ZSTD_decompressLegacyStream()
24256 void ZSTD_copyDDictParameters(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) in ZSTD_copyDDictParameters() argument
24259 assert(dctx != NULL); in ZSTD_copyDDictParameters()
24261 dctx->dictID = ddict->dictID; in ZSTD_copyDDictParameters()
24262 dctx->prefixStart = ddict->dictContent; in ZSTD_copyDDictParameters()
24263 dctx->virtualStart = ddict->dictContent; in ZSTD_copyDDictParameters()
24264 dctx->dictEnd = (const BYTE*)ddict->dictContent + ddict->dictSize; in ZSTD_copyDDictParameters()
24265 dctx->previousDstEnd = dctx->dictEnd; in ZSTD_copyDDictParameters()
24267 dctx->dictContentBeginForFuzzing = dctx->prefixStart; in ZSTD_copyDDictParameters()
24268 dctx->dictContentEndForFuzzing = dctx->previousDstEnd; in ZSTD_copyDDictParameters()
24271 dctx->litEntropy = 1; in ZSTD_copyDDictParameters()
24272 dctx->fseEntropy = 1; in ZSTD_copyDDictParameters()
24273 dctx->LLTptr = ddict->entropy.LLTable; in ZSTD_copyDDictParameters()
24274 dctx->MLTptr = ddict->entropy.MLTable; in ZSTD_copyDDictParameters()
24275 dctx->OFTptr = ddict->entropy.OFTable; in ZSTD_copyDDictParameters()
24276 dctx->HUFptr = ddict->entropy.hufTable; in ZSTD_copyDDictParameters()
24277 dctx->entropy.rep[0] = ddict->entropy.rep[0]; in ZSTD_copyDDictParameters()
24278 dctx->entropy.rep[1] = ddict->entropy.rep[1]; in ZSTD_copyDDictParameters()
24279 dctx->entropy.rep[2] = ddict->entropy.rep[2]; in ZSTD_copyDDictParameters()
24281 dctx->litEntropy = 0; in ZSTD_copyDDictParameters()
24282 dctx->fseEntropy = 0; in ZSTD_copyDDictParameters()
24554 size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx,
24582 size_t ZSTD_sizeof_DCtx (const ZSTD_DCtx* dctx) in ZSTD_sizeof_DCtx() argument
24584 if (dctx==NULL) return 0; /* support sizeof NULL */ in ZSTD_sizeof_DCtx()
24585 return sizeof(*dctx) in ZSTD_sizeof_DCtx()
24586 + ZSTD_sizeof_DDict(dctx->ddictLocal) in ZSTD_sizeof_DCtx()
24587 + dctx->inBuffSize + dctx->outBuffSize; in ZSTD_sizeof_DCtx()
24601 static void ZSTD_initDCtx_internal(ZSTD_DCtx* dctx) in ZSTD_initDCtx_internal() argument
24603 …dctx->format = ZSTD_f_zstd1; /* ZSTD_decompressBegin() invokes ZSTD_startingInputLength() with ar… in ZSTD_initDCtx_internal()
24604 dctx->staticSize = 0; in ZSTD_initDCtx_internal()
24605 dctx->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; in ZSTD_initDCtx_internal()
24606 dctx->ddict = NULL; in ZSTD_initDCtx_internal()
24607 dctx->ddictLocal = NULL; in ZSTD_initDCtx_internal()
24608 dctx->dictEnd = NULL; in ZSTD_initDCtx_internal()
24609 dctx->ddictIsCold = 0; in ZSTD_initDCtx_internal()
24610 dctx->dictUses = ZSTD_dont_use; in ZSTD_initDCtx_internal()
24611 dctx->inBuff = NULL; in ZSTD_initDCtx_internal()
24612 dctx->inBuffSize = 0; in ZSTD_initDCtx_internal()
24613 dctx->outBuffSize = 0; in ZSTD_initDCtx_internal()
24614 dctx->streamStage = zdss_init; in ZSTD_initDCtx_internal()
24615 dctx->legacyContext = NULL; in ZSTD_initDCtx_internal()
24616 dctx->previousLegacyVersion = 0; in ZSTD_initDCtx_internal()
24617 dctx->noForwardProgress = 0; in ZSTD_initDCtx_internal()
24618 dctx->oversizedDuration = 0; in ZSTD_initDCtx_internal()
24619 dctx->bmi2 = ZSTD_cpuid_bmi2(ZSTD_cpuid()); in ZSTD_initDCtx_internal()
24620 dctx->outBufferMode = ZSTD_obm_buffered; in ZSTD_initDCtx_internal()
24622 dctx->dictContentEndForFuzzing = NULL; in ZSTD_initDCtx_internal()
24628 ZSTD_DCtx* const dctx = (ZSTD_DCtx*) workspace; in ZSTD_initStaticDCtx() local
24633 ZSTD_initDCtx_internal(dctx); in ZSTD_initStaticDCtx()
24634 dctx->staticSize = workspaceSize; in ZSTD_initStaticDCtx()
24635 dctx->inBuff = (char*)(dctx+1); in ZSTD_initStaticDCtx()
24636 return dctx; in ZSTD_initStaticDCtx()
24643 { ZSTD_DCtx* const dctx = (ZSTD_DCtx*)ZSTD_malloc(sizeof(*dctx), customMem); in ZSTD_createDCtx_advanced() local
24644 if (!dctx) return NULL; in ZSTD_createDCtx_advanced()
24645 dctx->customMem = customMem; in ZSTD_createDCtx_advanced()
24646 ZSTD_initDCtx_internal(dctx); in ZSTD_createDCtx_advanced()
24647 return dctx; in ZSTD_createDCtx_advanced()
24657 static void ZSTD_clearDict(ZSTD_DCtx* dctx) in ZSTD_clearDict() argument
24659 ZSTD_freeDDict(dctx->ddictLocal); in ZSTD_clearDict()
24660 dctx->ddictLocal = NULL; in ZSTD_clearDict()
24661 dctx->ddict = NULL; in ZSTD_clearDict()
24662 dctx->dictUses = ZSTD_dont_use; in ZSTD_clearDict()
24665 size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx) in ZSTD_freeDCtx() argument
24667 if (dctx==NULL) return 0; /* support free on NULL */ in ZSTD_freeDCtx()
24668 RETURN_ERROR_IF(dctx->staticSize, memory_allocation, "not compatible with static DCtx"); in ZSTD_freeDCtx()
24669 { ZSTD_customMem const cMem = dctx->customMem; in ZSTD_freeDCtx()
24670 ZSTD_clearDict(dctx); in ZSTD_freeDCtx()
24671 ZSTD_free(dctx->inBuff, cMem); in ZSTD_freeDCtx()
24672 dctx->inBuff = NULL; in ZSTD_freeDCtx()
24674 if (dctx->legacyContext) in ZSTD_freeDCtx()
24675 ZSTD_freeLegacyStreamContext(dctx->legacyContext, dctx->previousLegacyVersion); in ZSTD_freeDCtx()
24677 ZSTD_free(dctx, cMem); in ZSTD_freeDCtx()
24941 static size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* dctx, const void* src, size_t headerSize) in ZSTD_decodeFrameHeader() argument
24943 …size_t const result = ZSTD_getFrameHeader_advanced(&(dctx->fParams), src, headerSize, dctx->format… in ZSTD_decodeFrameHeader()
24950 RETURN_ERROR_IF(dctx->fParams.dictID && (dctx->dictID != dctx->fParams.dictID), in ZSTD_decodeFrameHeader()
24953 if (dctx->fParams.checksumFlag) XXH64_reset(&dctx->xxhState, 0); in ZSTD_decodeFrameHeader()
25073 size_t ZSTD_insertBlock(ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize) in ZSTD_insertBlock() argument
25076 ZSTD_checkContinuity(dctx, blockStart); in ZSTD_insertBlock()
25077 dctx->previousDstEnd = (const char*)blockStart + blockSize; in ZSTD_insertBlock()
25113 static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx, in ZSTD_decompressFrame() argument
25127 remainingSrcSize < ZSTD_FRAMEHEADERSIZE_MIN(dctx->format)+ZSTD_blockHeaderSize, in ZSTD_decompressFrame()
25132 ip, ZSTD_FRAMEHEADERSIZE_PREFIX(dctx->format), dctx->format); in ZSTD_decompressFrame()
25136 FORWARD_IF_ERROR( ZSTD_decodeFrameHeader(dctx, ip, frameHeaderSize) , ""); in ZSTD_decompressFrame()
25154 … decodedSize = ZSTD_decompressBlock_internal(dctx, op, oend-op, ip, cBlockSize, /* frame */ 1); in ZSTD_decompressFrame()
25168 if (dctx->fParams.checksumFlag) in ZSTD_decompressFrame()
25169 XXH64_update(&dctx->xxhState, op, decodedSize); in ZSTD_decompressFrame()
25178 if (dctx->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN) { in ZSTD_decompressFrame()
25179 RETURN_ERROR_IF((U64)(op-ostart) != dctx->fParams.frameContentSize, in ZSTD_decompressFrame()
25182 if (dctx->fParams.checksumFlag) { /* Frame content checksum verification */ in ZSTD_decompressFrame()
25183 U32 const checkCalc = (U32)XXH64_digest(&dctx->xxhState); in ZSTD_decompressFrame()
25198 static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, in ZSTD_decompressMultiFrame() argument
25215 while (srcSize >= ZSTD_startingInputLength(dctx->format)) { in ZSTD_decompressMultiFrame()
25222 RETURN_ERROR_IF(dctx->staticSize, memory_allocation, in ZSTD_decompressMultiFrame()
25254 FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDDict(dctx, ddict), ""); in ZSTD_decompressMultiFrame()
25258 FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDict(dctx, dict, dictSize), ""); in ZSTD_decompressMultiFrame()
25260 ZSTD_checkContinuity(dctx, dst); in ZSTD_decompressMultiFrame()
25262 { const size_t res = ZSTD_decompressFrame(dctx, dst, dstCapacity, in ZSTD_decompressMultiFrame()
25291 size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx, in ZSTD_decompress_usingDict() argument
25296 return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, dict, dictSize, NULL); in ZSTD_decompress_usingDict()
25300 static ZSTD_DDict const* ZSTD_getDDict(ZSTD_DCtx* dctx) in ZSTD_getDDict() argument
25302 switch (dctx->dictUses) { in ZSTD_getDDict()
25307 ZSTD_clearDict(dctx); in ZSTD_getDDict()
25310 return dctx->ddict; in ZSTD_getDDict()
25312 dctx->dictUses = ZSTD_dont_use; in ZSTD_getDDict()
25313 return dctx->ddict; in ZSTD_getDDict()
25317 size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t … in ZSTD_decompressDCtx() argument
25319 return ZSTD_decompress_usingDDict(dctx, dst, dstCapacity, src, srcSize, ZSTD_getDDict(dctx)); in ZSTD_decompressDCtx()
25327 ZSTD_DCtx* const dctx = ZSTD_createDCtx(); in ZSTD_decompress() local
25328 RETURN_ERROR_IF(dctx==NULL, memory_allocation, "NULL pointer!"); in ZSTD_decompress()
25329 regenSize = ZSTD_decompressDCtx(dctx, dst, dstCapacity, src, srcSize); in ZSTD_decompress()
25330 ZSTD_freeDCtx(dctx); in ZSTD_decompress()
25333 ZSTD_DCtx dctx; in ZSTD_decompress()
25334 ZSTD_initDCtx_internal(&dctx); in ZSTD_decompress()
25335 return ZSTD_decompressDCtx(&dctx, dst, dstCapacity, src, srcSize); in ZSTD_decompress()
25344 size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx) { return dctx->expected; } in ZSTD_nextSrcSizeToDecompress() argument
25356 static size_t ZSTD_nextSrcSizeToDecompressWithInputSize(ZSTD_DCtx* dctx, size_t inputSize) { in ZSTD_nextSrcSizeToDecompressWithInputSize() argument
25357 if (!(dctx->stage == ZSTDds_decompressBlock || dctx->stage == ZSTDds_decompressLastBlock)) in ZSTD_nextSrcSizeToDecompressWithInputSize()
25358 return dctx->expected; in ZSTD_nextSrcSizeToDecompressWithInputSize()
25359 if (dctx->bType != bt_raw) in ZSTD_nextSrcSizeToDecompressWithInputSize()
25360 return dctx->expected; in ZSTD_nextSrcSizeToDecompressWithInputSize()
25361 return MIN(MAX(inputSize, 1), dctx->expected); in ZSTD_nextSrcSizeToDecompressWithInputSize()
25364 ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx) { in ZSTD_nextInputType() argument
25365 switch(dctx->stage) in ZSTD_nextInputType()
25386 static int ZSTD_isSkipFrame(ZSTD_DCtx* dctx) { return dctx->stage == ZSTDds_skipFrame; } in ZSTD_isSkipFrame() argument
25392 size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, siz… in ZSTD_decompressContinue() argument
25396 …RETURN_ERROR_IF(srcSize != ZSTD_nextSrcSizeToDecompressWithInputSize(dctx, srcSize), srcSize_wrong… in ZSTD_decompressContinue()
25397 if (dstCapacity) ZSTD_checkContinuity(dctx, dst); in ZSTD_decompressContinue()
25399 switch (dctx->stage) in ZSTD_decompressContinue()
25403 if (dctx->format == ZSTD_f_zstd1) { /* allows header */ in ZSTD_decompressContinue()
25406 memcpy(dctx->headerBuffer, src, srcSize); in ZSTD_decompressContinue()
25407 …dctx->expected = ZSTD_SKIPPABLEHEADERSIZE - srcSize; /* remaining to load to get full skippable f… in ZSTD_decompressContinue()
25408 dctx->stage = ZSTDds_decodeSkippableHeader; in ZSTD_decompressContinue()
25411 dctx->headerSize = ZSTD_frameHeaderSize_internal(src, srcSize, dctx->format); in ZSTD_decompressContinue()
25412 if (ZSTD_isError(dctx->headerSize)) return dctx->headerSize; in ZSTD_decompressContinue()
25413 memcpy(dctx->headerBuffer, src, srcSize); in ZSTD_decompressContinue()
25414 dctx->expected = dctx->headerSize - srcSize; in ZSTD_decompressContinue()
25415 dctx->stage = ZSTDds_decodeFrameHeader; in ZSTD_decompressContinue()
25420 memcpy(dctx->headerBuffer + (dctx->headerSize - srcSize), src, srcSize); in ZSTD_decompressContinue()
25421 FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(dctx, dctx->headerBuffer, dctx->headerSize), ""); in ZSTD_decompressContinue()
25422 dctx->expected = ZSTD_blockHeaderSize; in ZSTD_decompressContinue()
25423 dctx->stage = ZSTDds_decodeBlockHeader; in ZSTD_decompressContinue()
25430 …RETURN_ERROR_IF(cBlockSize > dctx->fParams.blockSizeMax, corruption_detected, "Block Size Exceeds … in ZSTD_decompressContinue()
25431 dctx->expected = cBlockSize; in ZSTD_decompressContinue()
25432 dctx->bType = bp.blockType; in ZSTD_decompressContinue()
25433 dctx->rleSize = bp.origSize; in ZSTD_decompressContinue()
25435 dctx->stage = bp.lastBlock ? ZSTDds_decompressLastBlock : ZSTDds_decompressBlock; in ZSTD_decompressContinue()
25440 if (dctx->fParams.checksumFlag) { in ZSTD_decompressContinue()
25441 dctx->expected = 4; in ZSTD_decompressContinue()
25442 dctx->stage = ZSTDds_checkChecksum; in ZSTD_decompressContinue()
25444 dctx->expected = 0; /* end of frame */ in ZSTD_decompressContinue()
25445 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressContinue()
25448 dctx->expected = ZSTD_blockHeaderSize; /* jump to next header */ in ZSTD_decompressContinue()
25449 dctx->stage = ZSTDds_decodeBlockHeader; in ZSTD_decompressContinue()
25458 switch(dctx->bType) in ZSTD_decompressContinue()
25462 … rSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, /* frame */ 1); in ZSTD_decompressContinue()
25463 dctx->expected = 0; /* Streaming not supported */ in ZSTD_decompressContinue()
25466 assert(srcSize <= dctx->expected); in ZSTD_decompressContinue()
25470 dctx->expected -= rSize; in ZSTD_decompressContinue()
25473 rSize = ZSTD_setRleBlock(dst, dstCapacity, *(const BYTE*)src, dctx->rleSize); in ZSTD_decompressContinue()
25474 dctx->expected = 0; /* Streaming not supported */ in ZSTD_decompressContinue()
25481 …RETURN_ERROR_IF(rSize > dctx->fParams.blockSizeMax, corruption_detected, "Decompressed Block Size … in ZSTD_decompressContinue()
25483 dctx->decodedSize += rSize; in ZSTD_decompressContinue()
25484 if (dctx->fParams.checksumFlag) XXH64_update(&dctx->xxhState, dst, rSize); in ZSTD_decompressContinue()
25485 dctx->previousDstEnd = (char*)dst + rSize; in ZSTD_decompressContinue()
25488 if (dctx->expected > 0) { in ZSTD_decompressContinue()
25492 if (dctx->stage == ZSTDds_decompressLastBlock) { /* end of frame */ in ZSTD_decompressContinue()
25493 … DEBUGLOG(4, "ZSTD_decompressContinue: decoded size from frame : %u", (unsigned)dctx->decodedSize); in ZSTD_decompressContinue()
25495 dctx->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN in ZSTD_decompressContinue()
25496 && dctx->decodedSize != dctx->fParams.frameContentSize, in ZSTD_decompressContinue()
25498 if (dctx->fParams.checksumFlag) { /* another round for frame checksum */ in ZSTD_decompressContinue()
25499 dctx->expected = 4; in ZSTD_decompressContinue()
25500 dctx->stage = ZSTDds_checkChecksum; in ZSTD_decompressContinue()
25502 dctx->expected = 0; /* ends here */ in ZSTD_decompressContinue()
25503 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressContinue()
25506 dctx->stage = ZSTDds_decodeBlockHeader; in ZSTD_decompressContinue()
25507 dctx->expected = ZSTD_blockHeaderSize; in ZSTD_decompressContinue()
25514 { U32 const h32 = (U32)XXH64_digest(&dctx->xxhState); in ZSTD_decompressContinue()
25518 dctx->expected = 0; in ZSTD_decompressContinue()
25519 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressContinue()
25526 …memcpy(dctx->headerBuffer + (ZSTD_SKIPPABLEHEADERSIZE - srcSize), src, srcSize); /* complete ski… in ZSTD_decompressContinue()
25527 …dctx->expected = MEM_readLE32(dctx->headerBuffer + ZSTD_FRAMEIDSIZE); /* note : dctx->expected c… in ZSTD_decompressContinue()
25528 dctx->stage = ZSTDds_skipFrame; in ZSTD_decompressContinue()
25532 dctx->expected = 0; in ZSTD_decompressContinue()
25533 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressContinue()
25543 static size_t ZSTD_refDictContent(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_refDictContent() argument
25545 dctx->dictEnd = dctx->previousDstEnd; in ZSTD_refDictContent()
25546 …dctx->virtualStart = (const char*)dict - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx… in ZSTD_refDictContent()
25547 dctx->prefixStart = dict; in ZSTD_refDictContent()
25548 dctx->previousDstEnd = (const char*)dict + dictSize; in ZSTD_refDictContent()
25550 dctx->dictContentBeginForFuzzing = dctx->prefixStart; in ZSTD_refDictContent()
25551 dctx->dictContentEndForFuzzing = dctx->previousDstEnd; in ZSTD_refDictContent()
25641 static size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_decompress_insertDictionary() argument
25643 if (dictSize < 8) return ZSTD_refDictContent(dctx, dict, dictSize); in ZSTD_decompress_insertDictionary()
25646 return ZSTD_refDictContent(dctx, dict, dictSize); /* pure content mode */ in ZSTD_decompress_insertDictionary()
25648 dctx->dictID = MEM_readLE32((const char*)dict + ZSTD_FRAMEIDSIZE); in ZSTD_decompress_insertDictionary()
25651 { size_t const eSize = ZSTD_loadDEntropy(&dctx->entropy, dict, dictSize); in ZSTD_decompress_insertDictionary()
25656 dctx->litEntropy = dctx->fseEntropy = 1; in ZSTD_decompress_insertDictionary()
25659 return ZSTD_refDictContent(dctx, dict, dictSize); in ZSTD_decompress_insertDictionary()
25662 size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx) in ZSTD_decompressBegin() argument
25664 assert(dctx != NULL); in ZSTD_decompressBegin()
25665 … dctx->expected = ZSTD_startingInputLength(dctx->format); /* dctx->format must be properly set */ in ZSTD_decompressBegin()
25666 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressBegin()
25667 dctx->decodedSize = 0; in ZSTD_decompressBegin()
25668 dctx->previousDstEnd = NULL; in ZSTD_decompressBegin()
25669 dctx->prefixStart = NULL; in ZSTD_decompressBegin()
25670 dctx->virtualStart = NULL; in ZSTD_decompressBegin()
25671 dctx->dictEnd = NULL; in ZSTD_decompressBegin()
25672 …dctx->entropy.hufTable[0] = (HUF_DTable)((HufLog)*0x1000001); /* cover both little and big endian… in ZSTD_decompressBegin()
25673 dctx->litEntropy = dctx->fseEntropy = 0; in ZSTD_decompressBegin()
25674 dctx->dictID = 0; in ZSTD_decompressBegin()
25675 dctx->bType = bt_reserved; in ZSTD_decompressBegin()
25676 ZSTD_STATIC_ASSERT(sizeof(dctx->entropy.rep) == sizeof(repStartValue)); in ZSTD_decompressBegin()
25677 memcpy(dctx->entropy.rep, repStartValue, sizeof(repStartValue)); /* initial repcodes */ in ZSTD_decompressBegin()
25678 dctx->LLTptr = dctx->entropy.LLTable; in ZSTD_decompressBegin()
25679 dctx->MLTptr = dctx->entropy.MLTable; in ZSTD_decompressBegin()
25680 dctx->OFTptr = dctx->entropy.OFTable; in ZSTD_decompressBegin()
25681 dctx->HUFptr = dctx->entropy.hufTable; in ZSTD_decompressBegin()
25685 size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_decompressBegin_usingDict() argument
25687 FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) , ""); in ZSTD_decompressBegin_usingDict()
25690 ZSTD_isError(ZSTD_decompress_insertDictionary(dctx, dict, dictSize)), in ZSTD_decompressBegin_usingDict()
25698 size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) in ZSTD_decompressBegin_usingDDict() argument
25701 assert(dctx != NULL); in ZSTD_decompressBegin_usingDDict()
25706 dctx->ddictIsCold = (dctx->dictEnd != dictEnd); in ZSTD_decompressBegin_usingDDict()
25708 dctx->ddictIsCold ? "~cold~" : "hot!"); in ZSTD_decompressBegin_usingDDict()
25710 FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) , ""); in ZSTD_decompressBegin_usingDDict()
25712 ZSTD_copyDDictParameters(dctx, ddict); in ZSTD_decompressBegin_usingDDict()
25753 size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx, in ZSTD_decompress_usingDDict() argument
25759 return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, in ZSTD_decompress_usingDDict()
25796 size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, in ZSTD_DCtx_loadDictionary_advanced() argument
25801 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_loadDictionary_advanced()
25802 ZSTD_clearDict(dctx); in ZSTD_DCtx_loadDictionary_advanced()
25804 …dctx->ddictLocal = ZSTD_createDDict_advanced(dict, dictSize, dictLoadMethod, dictContentType, dctx… in ZSTD_DCtx_loadDictionary_advanced()
25805 RETURN_ERROR_IF(dctx->ddictLocal == NULL, memory_allocation, "NULL pointer!"); in ZSTD_DCtx_loadDictionary_advanced()
25806 dctx->ddict = dctx->ddictLocal; in ZSTD_DCtx_loadDictionary_advanced()
25807 dctx->dictUses = ZSTD_use_indefinitely; in ZSTD_DCtx_loadDictionary_advanced()
25812 size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_DCtx_loadDictionary_byReference() argument
25814 return ZSTD_DCtx_loadDictionary_advanced(dctx, dict, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto); in ZSTD_DCtx_loadDictionary_byReference()
25817 size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_DCtx_loadDictionary() argument
25819 return ZSTD_DCtx_loadDictionary_advanced(dctx, dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto); in ZSTD_DCtx_loadDictionary()
25822 size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize, ZSTD_di… in ZSTD_DCtx_refPrefix_advanced() argument
25824 …FORWARD_IF_ERROR(ZSTD_DCtx_loadDictionary_advanced(dctx, prefix, prefixSize, ZSTD_dlm_byRef, dictC… in ZSTD_DCtx_refPrefix_advanced()
25825 dctx->dictUses = ZSTD_use_once; in ZSTD_DCtx_refPrefix_advanced()
25829 size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize) in ZSTD_DCtx_refPrefix() argument
25831 return ZSTD_DCtx_refPrefix_advanced(dctx, prefix, prefixSize, ZSTD_dct_rawContent); in ZSTD_DCtx_refPrefix()
25856 size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* dctx, const ZSTD_DDict* ddict) in ZSTD_initDStream_usingDDict() argument
25858 FORWARD_IF_ERROR( ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only) , ""); in ZSTD_initDStream_usingDDict()
25859 FORWARD_IF_ERROR( ZSTD_DCtx_refDDict(dctx, ddict) , ""); in ZSTD_initDStream_usingDDict()
25860 return ZSTD_startingInputLength(dctx->format); in ZSTD_initDStream_usingDDict()
25866 size_t ZSTD_resetDStream(ZSTD_DStream* dctx) in ZSTD_resetDStream() argument
25868 FORWARD_IF_ERROR(ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only), ""); in ZSTD_resetDStream()
25869 return ZSTD_startingInputLength(dctx->format); in ZSTD_resetDStream()
25873 size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) in ZSTD_DCtx_refDDict() argument
25875 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_refDDict()
25876 ZSTD_clearDict(dctx); in ZSTD_DCtx_refDDict()
25878 dctx->ddict = ddict; in ZSTD_DCtx_refDDict()
25879 dctx->dictUses = ZSTD_use_indefinitely; in ZSTD_DCtx_refDDict()
25887 size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize) in ZSTD_DCtx_setMaxWindowSize() argument
25892 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_setMaxWindowSize()
25895 dctx->maxWindowSize = maxWindowSize; in ZSTD_DCtx_setMaxWindowSize()
25899 size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format) in ZSTD_DCtx_setFormat() argument
25901 return ZSTD_DCtx_setParameter(dctx, ZSTD_d_format, format); in ZSTD_DCtx_setFormat()
25943 size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter dParam, int value) in ZSTD_DCtx_setParameter() argument
25945 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_setParameter()
25950 dctx->maxWindowSize = ((size_t)1) << value; in ZSTD_DCtx_setParameter()
25954 dctx->format = (ZSTD_format_e)value; in ZSTD_DCtx_setParameter()
25958 dctx->outBufferMode = (ZSTD_outBufferMode_e)value; in ZSTD_DCtx_setParameter()
25965 size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset) in ZSTD_DCtx_reset() argument
25969 dctx->streamStage = zdss_init; in ZSTD_DCtx_reset()
25970 dctx->noForwardProgress = 0; in ZSTD_DCtx_reset()
25974 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_reset()
25975 ZSTD_clearDict(dctx); in ZSTD_DCtx_reset()
25976 dctx->format = ZSTD_f_zstd1; in ZSTD_DCtx_reset()
25977 dctx->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; in ZSTD_DCtx_reset()
25983 size_t ZSTD_sizeof_DStream(const ZSTD_DStream* dctx) in ZSTD_sizeof_DStream() argument
25985 return ZSTD_sizeof_DCtx(dctx); in ZSTD_sizeof_DStream()
26378 ZSTD_DCtx* dctx, in ZSTD_decompressStream_simpleArgs() argument
26385 size_t const cErr = ZSTD_decompressStream(dctx, &output, &input); in ZSTD_decompressStream_simpleArgs()
26465 size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx,
26470 size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, in ZSTD_decodeLiteralsBlock() argument
26483 RETURN_ERROR_IF(dctx->litEntropy==0, dictionary_corrupted, ""); in ZSTD_decodeLiteralsBlock()
26519 if (dctx->ddictIsCold && (litSize > 768 /* heuristic */)) { in ZSTD_decodeLiteralsBlock()
26520 PREFETCH_AREA(dctx->HUFptr, sizeof(dctx->entropy.hufTable)); in ZSTD_decodeLiteralsBlock()
26526 dctx->litBuffer, litSize, istart+lhSize, litCSize, in ZSTD_decodeLiteralsBlock()
26527 dctx->HUFptr, dctx->bmi2); in ZSTD_decodeLiteralsBlock()
26530 dctx->litBuffer, litSize, istart+lhSize, litCSize, in ZSTD_decodeLiteralsBlock()
26531 dctx->HUFptr, dctx->bmi2); in ZSTD_decodeLiteralsBlock()
26537 dctx->entropy.hufTable, dctx->litBuffer, litSize, in ZSTD_decodeLiteralsBlock()
26538 istart+lhSize, litCSize, dctx->workspace, in ZSTD_decodeLiteralsBlock()
26539 sizeof(dctx->workspace)); in ZSTD_decodeLiteralsBlock()
26542 dctx->entropy.hufTable, dctx->litBuffer, litSize, in ZSTD_decodeLiteralsBlock()
26543 istart+lhSize, litCSize, dctx->workspace, in ZSTD_decodeLiteralsBlock()
26544 sizeof(dctx->workspace), dctx->bmi2); in ZSTD_decodeLiteralsBlock()
26548 dctx->entropy.hufTable, dctx->litBuffer, litSize, in ZSTD_decodeLiteralsBlock()
26549 istart+lhSize, litCSize, dctx->workspace, in ZSTD_decodeLiteralsBlock()
26550 sizeof(dctx->workspace), dctx->bmi2); in ZSTD_decodeLiteralsBlock()
26556 dctx->litPtr = dctx->litBuffer; in ZSTD_decodeLiteralsBlock()
26557 dctx->litSize = litSize; in ZSTD_decodeLiteralsBlock()
26558 dctx->litEntropy = 1; in ZSTD_decodeLiteralsBlock()
26559 if (litEncType==set_compressed) dctx->HUFptr = dctx->entropy.hufTable; in ZSTD_decodeLiteralsBlock()
26560 memset(dctx->litBuffer + dctx->litSize, 0, WILDCOPY_OVERLENGTH); in ZSTD_decodeLiteralsBlock()
26585 memcpy(dctx->litBuffer, istart+lhSize, litSize); in ZSTD_decodeLiteralsBlock()
26586 dctx->litPtr = dctx->litBuffer; in ZSTD_decodeLiteralsBlock()
26587 dctx->litSize = litSize; in ZSTD_decodeLiteralsBlock()
26588 memset(dctx->litBuffer + dctx->litSize, 0, WILDCOPY_OVERLENGTH); in ZSTD_decodeLiteralsBlock()
26592 dctx->litPtr = istart+lhSize; in ZSTD_decodeLiteralsBlock()
26593 dctx->litSize = litSize; in ZSTD_decodeLiteralsBlock()
26617 memset(dctx->litBuffer, istart[lhSize], litSize + WILDCOPY_OVERLENGTH); in ZSTD_decodeLiteralsBlock()
26618 dctx->litPtr = dctx->litBuffer; in ZSTD_decodeLiteralsBlock()
26619 dctx->litSize = litSize; in ZSTD_decodeLiteralsBlock()
26871 size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, in ZSTD_decodeSeqHeaders() argument
26909 { size_t const llhSize = ZSTD_buildSeqTable(dctx->entropy.LLTable, &dctx->LLTptr, in ZSTD_decodeSeqHeaders()
26913 LL_defaultDTable, dctx->fseEntropy, in ZSTD_decodeSeqHeaders()
26914 dctx->ddictIsCold, nbSeq); in ZSTD_decodeSeqHeaders()
26919 { size_t const ofhSize = ZSTD_buildSeqTable(dctx->entropy.OFTable, &dctx->OFTptr, in ZSTD_decodeSeqHeaders()
26923 OF_defaultDTable, dctx->fseEntropy, in ZSTD_decodeSeqHeaders()
26924 dctx->ddictIsCold, nbSeq); in ZSTD_decodeSeqHeaders()
26929 { size_t const mlhSize = ZSTD_buildSeqTable(dctx->entropy.MLTable, &dctx->MLTptr, in ZSTD_decodeSeqHeaders()
26933 ML_defaultDTable, dctx->fseEntropy, in ZSTD_decodeSeqHeaders()
26934 dctx->ddictIsCold, nbSeq); in ZSTD_decodeSeqHeaders()
27342 static int ZSTD_dictionaryIsActive(ZSTD_DCtx const* dctx, BYTE const* prefixStart, BYTE const* oLit… in ZSTD_dictionaryIsActive() argument
27344 size_t const windowSize = dctx->fParams.windowSize; in ZSTD_dictionaryIsActive()
27346 if (dctx->dictContentEndForFuzzing == NULL) return 0; in ZSTD_dictionaryIsActive()
27348 if (prefixStart == dctx->dictContentBeginForFuzzing) return 1; in ZSTD_dictionaryIsActive()
27350 if (dctx->dictEnd != dctx->dictContentEndForFuzzing) return 0; in ZSTD_dictionaryIsActive()
27358 ZSTD_DCtx const* dctx, in ZSTD_assertValidSequence() argument
27363 size_t const windowSize = dctx->fParams.windowSize; in ZSTD_assertValidSequence()
27371 if (ZSTD_dictionaryIsActive(dctx, prefixStart, oLitEnd)) { in ZSTD_assertValidSequence()
27372 …size_t const dictSize = (size_t)((char const*)dctx->dictContentEndForFuzzing - (char const*)dctx->… in ZSTD_assertValidSequence()
27386 ZSTD_decompressSequences_body( ZSTD_DCtx* dctx, in ZSTD_decompressSequences_body() argument
27397 const BYTE* litPtr = dctx->litPtr; in ZSTD_decompressSequences_body()
27398 const BYTE* const litEnd = litPtr + dctx->litSize; in ZSTD_decompressSequences_body()
27399 const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart); in ZSTD_decompressSequences_body()
27400 const BYTE* const vBase = (const BYTE*) (dctx->virtualStart); in ZSTD_decompressSequences_body()
27401 const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd); in ZSTD_decompressSequences_body()
27409 dctx->fseEntropy = 1; in ZSTD_decompressSequences_body()
27410 { U32 i; for (i=0; i<ZSTD_REP_NUM; i++) seqState.prevOffset[i] = dctx->entropy.rep[i]; } in ZSTD_decompressSequences_body()
27414 ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr); in ZSTD_decompressSequences_body()
27415 ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr); in ZSTD_decompressSequences_body()
27416 ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); in ZSTD_decompressSequences_body()
27470 if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); in ZSTD_decompressSequences_body()
27491 … { U32 i; for (i=0; i<ZSTD_REP_NUM; i++) dctx->entropy.rep[i] = (U32)(seqState.prevOffset[i]); } in ZSTD_decompressSequences_body()
27507 ZSTD_decompressSequences_default(ZSTD_DCtx* dctx, in ZSTD_decompressSequences_default() argument
27513 …return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset… in ZSTD_decompressSequences_default()
27520 ZSTD_DCtx* dctx, in ZSTD_decompressSequencesLong_body() argument
27531 const BYTE* litPtr = dctx->litPtr; in ZSTD_decompressSequencesLong_body()
27532 const BYTE* const litEnd = litPtr + dctx->litSize; in ZSTD_decompressSequencesLong_body()
27533 const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart); in ZSTD_decompressSequencesLong_body()
27534 const BYTE* const dictStart = (const BYTE*) (dctx->virtualStart); in ZSTD_decompressSequencesLong_body()
27535 const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd); in ZSTD_decompressSequencesLong_body()
27547 dctx->fseEntropy = 1; in ZSTD_decompressSequencesLong_body()
27548 { int i; for (i=0; i<ZSTD_REP_NUM; i++) seqState.prevOffset[i] = dctx->entropy.rep[i]; } in ZSTD_decompressSequencesLong_body()
27557 ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr); in ZSTD_decompressSequencesLong_body()
27558 ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr); in ZSTD_decompressSequencesLong_body()
27559 ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); in ZSTD_decompressSequencesLong_body()
27574 …if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequences[(seqNb-ADVANCED_SEQS) & STORED_SEQS_… in ZSTD_decompressSequencesLong_body()
27589 …if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequences[seqNb&STORED_SEQS_MASK], prefixStart… in ZSTD_decompressSequencesLong_body()
27596 … { U32 i; for (i=0; i<ZSTD_REP_NUM; i++) dctx->entropy.rep[i] = (U32)(seqState.prevOffset[i]); } in ZSTD_decompressSequencesLong_body()
27612 ZSTD_decompressSequencesLong_default(ZSTD_DCtx* dctx, in ZSTD_decompressSequencesLong_default() argument
27618 …return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOf… in ZSTD_decompressSequencesLong_default()
27629 ZSTD_decompressSequences_bmi2(ZSTD_DCtx* dctx, in ZSTD_decompressSequences_bmi2() argument
27635 …return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset… in ZSTD_decompressSequences_bmi2()
27641 ZSTD_decompressSequencesLong_bmi2(ZSTD_DCtx* dctx, in ZSTD_decompressSequencesLong_bmi2() argument
27647 …return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOf… in ZSTD_decompressSequencesLong_bmi2()
27654 ZSTD_DCtx* dctx,
27662 ZSTD_decompressSequences(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, in ZSTD_decompressSequences() argument
27669 if (dctx->bmi2) { in ZSTD_decompressSequences()
27670 …return ZSTD_decompressSequences_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset… in ZSTD_decompressSequences()
27673 …return ZSTD_decompressSequences_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOff… in ZSTD_decompressSequences()
27685 ZSTD_decompressSequencesLong(ZSTD_DCtx* dctx, in ZSTD_decompressSequencesLong() argument
27693 if (dctx->bmi2) { in ZSTD_decompressSequencesLong()
27694 …return ZSTD_decompressSequencesLong_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOf… in ZSTD_decompressSequencesLong()
27697 …return ZSTD_decompressSequencesLong_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLon… in ZSTD_decompressSequencesLong()
27732 ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, in ZSTD_decompressBlock_internal() argument
27743 …ZSTD_longOffset_e const isLongOffset = (ZSTD_longOffset_e)(MEM_32bits() && (!frame || (dctx->fPara… in ZSTD_decompressBlock_internal()
27749 { size_t const litCSize = ZSTD_decodeLiteralsBlock(dctx, src, srcSize); in ZSTD_decompressBlock_internal()
27764 int usePrefetchDecoder = dctx->ddictIsCold; in ZSTD_decompressBlock_internal()
27767 size_t const seqHSize = ZSTD_decodeSeqHeaders(dctx, &nbSeq, ip, srcSize); in ZSTD_decompressBlock_internal()
27777 && (!frame || (dctx->fParams.windowSize > (1<<24))) in ZSTD_decompressBlock_internal()
27779 U32 const shareLongOffsets = ZSTD_getLongOffsetsShare(dctx->OFTptr); in ZSTD_decompressBlock_internal()
27785 dctx->ddictIsCold = 0; in ZSTD_decompressBlock_internal()
27792 …return ZSTD_decompressSequencesLong(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset, fram… in ZSTD_decompressBlock_internal()
27797 … return ZSTD_decompressSequences(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset, frame); in ZSTD_decompressBlock_internal()
27803 void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst) in ZSTD_checkContinuity() argument
27805 if (dst != dctx->previousDstEnd) { /* not contiguous */ in ZSTD_checkContinuity()
27806 dctx->dictEnd = dctx->previousDstEnd; in ZSTD_checkContinuity()
27807 …dctx->virtualStart = (const char*)dst - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx-… in ZSTD_checkContinuity()
27808 dctx->prefixStart = dst; in ZSTD_checkContinuity()
27809 dctx->previousDstEnd = dst; in ZSTD_checkContinuity()
27814 size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, in ZSTD_decompressBlock() argument
27819 ZSTD_checkContinuity(dctx, dst); in ZSTD_decompressBlock()
27820 dSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, /* frame */ 0); in ZSTD_decompressBlock()
27821 dctx->previousDstEnd = (char*)dst + dSize; in ZSTD_decompressBlock()