Lines Matching defs:params
82 int compressionLevel; /* 0 indicates that advanced API was used to select CDict params */
83 ZSTD_paramSwitch_e useRowMatchFinder; /* Indicates whether the CDict was created with params that would use
278 /* Adjust advanced params according to cParams */
294 ZSTD_CCtx_params* params;
296 params = (ZSTD_CCtx_params*)ZSTD_customCalloc(
298 if (!params) { return NULL; }
299 ZSTD_CCtxParams_init(params, ZSTD_CLEVEL_DEFAULT);
300 params->customMem = customMem;
301 return params;
309 size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params)
311 if (params == NULL) { return 0; }
312 ZSTD_customFree(params, params->customMem);
316 size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params)
318 return ZSTD_CCtxParams_init(params, ZSTD_CLEVEL_DEFAULT);
332 * Initializes the cctxParams from params and compressionLevel.
333 * @param compressionLevel If params are derived from a compression level then that compression level, otherwise ZSTD_NO_CLEVEL.
335 static void ZSTD_CCtxParams_init_internal(ZSTD_CCtx_params* cctxParams, ZSTD_parameters const* params, int compressionLevel)
337 assert(!ZSTD_checkCParams(params->cParams));
339 cctxParams->cParams = params->cParams;
340 cctxParams->fParams = params->fParams;
345 cctxParams->useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams->useRowMatchFinder, ¶ms->cParams);
346 cctxParams->useBlockSplitter = ZSTD_resolveBlockSplitterMode(cctxParams->useBlockSplitter, ¶ms->cParams);
347 cctxParams->ldmParams.enableLdm = ZSTD_resolveEnableLdm(cctxParams->ldmParams.enableLdm, ¶ms->cParams);
352 size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params)
355 FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) , "");
356 ZSTD_CCtxParams_init_internal(cctxParams, ¶ms, ZSTD_NO_CLEVEL);
361 * Sets cctxParams' cParams and fParams from params, but otherwise leaves them alone.
365 ZSTD_CCtx_params* cctxParams, const ZSTD_parameters* params)
367 assert(!ZSTD_checkCParams(params->cParams));
368 cctxParams->cParams = params->cParams;
369 cctxParams->fParams = params->fParams;
628 RETURN_ERROR(stage_wrong, "can only set params in ctx init stage");
989 * just applies `params` into `cctx`
996 ZSTD_CCtx* cctx, const ZSTD_CCtx_params* params)
1005 cctx->requestedParams = *params;
1434 size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params)
1437 ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict);
1438 ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder,
1441 RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only.");
1446 &cParams, ¶ms->ldmParams, 1, useRowMatchFinder, 0, 0, ZSTD_CONTENTSIZE_UNKNOWN);
1491 size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params)
1493 RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only.");
1495 ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict);
1497 size_t const inBuffSize = (params->inBufferMode == ZSTD_bm_buffered)
1500 size_t const outBuffSize = (params->outBufferMode == ZSTD_bm_buffered)
1503 ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder, ¶ms->cParams);
1506 &cParams, ¶ms->ldmParams, 1, useRowMatchFinder, inBuffSize, outBuffSize,
1746 * note : `params` are assumed fully validated at this stage.
1749 ZSTD_CCtx_params const* params,
1757 (U32)pledgedSrcSize, params->cParams.windowLog, (int)params->useRowMatchFinder, (int)params->useBlockSplitter);
1758 assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams)));
1762 /* Set applied params early so we can modify them for LDM,
1763 * and point params at the applied params.
1765 zc->appliedParams = *params;
1766 params = &zc->appliedParams;
1768 assert(params->useRowMatchFinder != ZSTD_ps_auto);
1769 assert(params->useBlockSplitter != ZSTD_ps_auto);
1770 assert(params->ldmParams.enableLdm != ZSTD_ps_auto);
1771 if (params->ldmParams.enableLdm == ZSTD_ps_enable) {
1773 ZSTD_ldm_adjustParameters(&zc->appliedParams.ldmParams, ¶ms->cParams);
1774 assert(params->ldmParams.hashLog >= params->ldmParams.bucketSizeLog);
1775 assert(params->ldmParams.hashRateLog < 32);
1778 { size_t const windowSize = MAX(1, (size_t)MIN(((U64)1 << params->cParams.windowLog), pledgedSrcSize));
1780 U32 const divider = (params->cParams.minMatch==3) ? 3 : 4;
1782 size_t const buffOutSize = (zbuff == ZSTDb_buffered && params->outBufferMode == ZSTD_bm_buffered)
1785 size_t const buffInSize = (zbuff == ZSTDb_buffered && params->inBufferMode == ZSTD_bm_buffered)
1788 size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(params->ldmParams, blockSize);
1797 ¶ms->cParams, ¶ms->ldmParams, zc->staticSize != 0, params->useRowMatchFinder,
1839 /* init params */
1840 zc->blockState.matchState.cParams = params->cParams;
1871 if (params->ldmParams.enableLdm == ZSTD_ps_enable) {
1874 ((size_t)1) << (params->ldmParams.hashLog -
1875 params->ldmParams.bucketSizeLog);
1891 ¶ms->cParams,
1892 params->useRowMatchFinder,
1898 if (params->ldmParams.enableLdm == ZSTD_ps_enable) {
1900 size_t const ldmHSize = ((size_t)1) << params->ldmParams.hashLog;
1947 const ZSTD_CCtx_params* params,
1955 || params->attachDictPref == ZSTD_dictForceAttach )
1956 && params->attachDictPref != ZSTD_dictForceCopy
1957 && !params->forceWindow ); /* dictMatchState isn't correctly
1964 ZSTD_CCtx_params params,
1972 unsigned const windowLog = params.cParams.windowLog;
1974 /* Resize working context table params for input only, since the dict
1982 params.cParams = ZSTD_adjustCParams_internal(adjusted_cdict_cParams, pledgedSrcSize,
1984 params.cParams.windowLog = windowLog;
1985 params.useRowMatchFinder = cdict->useRowMatchFinder; /* cdict overrides */
1986 FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, ¶ms, pledgedSrcSize,
2024 ZSTD_CCtx_params params,
2034 { unsigned const windowLog = params.cParams.windowLog;
2037 params.cParams = *cdict_cParams;
2038 params.cParams.windowLog = windowLog;
2039 params.useRowMatchFinder = cdict->useRowMatchFinder;
2040 FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, ¶ms, pledgedSrcSize,
2049 assert(params.useRowMatchFinder != ZSTD_ps_auto);
2106 const ZSTD_CCtx_params* params,
2114 if (ZSTD_shouldAttachDict(cdict, params, pledgedSrcSize)) {
2116 cctx, cdict, *params, pledgedSrcSize, zbuff);
2119 cctx, cdict, *params, pledgedSrcSize, zbuff);
2140 { ZSTD_CCtx_params params = dstCCtx->requestedParams;
2142 params.cParams = srcCCtx->appliedParams.cParams;
2146 params.useRowMatchFinder = srcCCtx->appliedParams.useRowMatchFinder;
2147 params.useBlockSplitter = srcCCtx->appliedParams.useBlockSplitter;
2148 params.ldmParams = srcCCtx->appliedParams.ldmParams;
2149 params.fParams = fParams;
2150 ZSTD_resetCCtx_internal(dstCCtx, ¶ms, pledgedSrcSize,
2270 static void ZSTD_reduceIndex (ZSTD_matchState_t* ms, ZSTD_CCtx_params const* params, const U32 reducerValue)
2272 { U32 const hSize = (U32)1 << params->cParams.hashLog;
2276 if (ZSTD_allocateChainTable(params->cParams.strategy, params->useRowMatchFinder, (U32)ms->dedicatedDictSearch)) {
2277 U32 const chainSize = (U32)1 << params->cParams.chainLog;
2278 if (params->cParams.strategy == ZSTD_btlazy2)
2728 /* Assert that we have correctly flushed the ctx params into the ms's copy */
3812 ZSTD_CCtx_params const* params,
3816 U32 const cycleLog = ZSTD_cycleLog(params->cParams.chainLog, params->cParams.strategy);
3817 U32 const maxDist = (U32)1 << params->cParams.windowLog;
3824 ZSTD_reduceIndex(ms, params, correction);
3922 const ZSTD_CCtx_params* params, U64 pledgedSrcSize, U32 dictID)
3925 U32 const dictIDSizeCode = params->fParams.noDictIDFlag ? 0 : dictIDSizeCodeLength; /* 0-3 */
3926 U32 const checksumFlag = params->fParams.checksumFlag>0;
3927 U32 const windowSize = (U32)1 << params->cParams.windowLog;
3928 U32 const singleSegment = params->fParams.contentSizeFlag && (windowSize >= pledgedSrcSize);
3929 BYTE const windowLogByte = (BYTE)((params->cParams.windowLog - ZSTD_WINDOWLOG_ABSOLUTEMIN) << 3);
3930 U32 const fcsCode = params->fParams.contentSizeFlag ?
3935 assert(!(params->fParams.contentSizeFlag && pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN));
3939 !params->fParams.noDictIDFlag, (unsigned)dictID, (unsigned)dictIDSizeCode);
3940 if (params->format == ZSTD_f_zstd1) {
4112 ZSTD_CCtx_params const* params,
4118 int const loadLdmDict = params->ldmParams.enableLdm == ZSTD_ps_enable && ls != NULL;
4120 /* Assert that we the ms params match the params we're being given */
4121 ZSTD_assertEqualCParams(params->cParams, ms->cParams);
4141 DEBUGLOG(4, "ZSTD_loadDictionaryContent(): useRowMatchFinder=%d", (int)params->useRowMatchFinder);
4143 ms->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ms->window.base);
4144 ms->forceNonContiguous = params->deterministicRefPrefix;
4148 ls->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ls->window.base);
4153 ZSTD_overflowCorrectIfNeeded(ms, ws, params, ip, iend);
4156 ZSTD_ldm_fillHashTable(ls, ip, iend, ¶ms->ldmParams);
4158 switch(params->cParams.strategy)
4175 assert(params->useRowMatchFinder != ZSTD_ps_auto);
4176 if (params->useRowMatchFinder == ZSTD_ps_enable) {
4177 size_t const tagTableSize = ((size_t)1 << params->cParams.hashLog) * sizeof(U16);
4327 ZSTD_CCtx_params const* params,
4340 dictID = params->fParams.noDictIDFlag ? 0 : MEM_readLE32(dictPtr + 4 /* skip magic number */ );
4348 ms, NULL, ws, params, dictPtr, dictContentSize, dtlm), "");
4360 const ZSTD_CCtx_params* params,
4376 return ZSTD_loadDictionaryContent(ms, ls, ws, params, dict, dictSize, dtlm);
4382 ms, ls, ws, params, dict, dictSize, dtlm);
4390 bs, ms, ws, params, dict, dictSize, dtlm, workspace);
4403 const ZSTD_CCtx_params* params, U64 pledgedSrcSize,
4407 DEBUGLOG(4, "ZSTD_compressBegin_internal: wlog=%u", params->cParams.windowLog);
4408 /* params are supposed to be fully validated at this point */
4409 assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams)));
4417 && (params->attachDictPref != ZSTD_dictForceLoad) ) {
4418 return ZSTD_resetCCtx_usingCDict(cctx, cdict, params, pledgedSrcSize, zbuff);
4421 FORWARD_IF_ERROR( ZSTD_resetCCtx_internal(cctx, params, pledgedSrcSize,
4447 const ZSTD_CCtx_params* params,
4450 DEBUGLOG(4, "ZSTD_compressBegin_advanced_internal: wlog=%u", params->cParams.windowLog);
4452 FORWARD_IF_ERROR( ZSTD_checkCParams(params->cParams) , "");
4456 params, pledgedSrcSize,
4464 ZSTD_parameters params, unsigned long long pledgedSrcSize)
4467 ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, ZSTD_NO_CLEVEL);
4478 ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_noAttachDict);
4479 ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel);
4570 ZSTD_parameters params)
4573 FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams), "");
4574 ZSTD_CCtxParams_init_internal(&cctx->simpleApiParams, ¶ms, ZSTD_NO_CLEVEL);
4588 const ZSTD_CCtx_params* params)
4593 params, srcSize, ZSTDb_not_buffered) , "");
4604 ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, srcSize, dict ? dictSize : 0, ZSTD_cpm_noAttachDict);
4605 assert(params.fParams.contentSizeFlag == 1);
4606 ZSTD_CCtxParams_init_internal(&cctx->simpleApiParams, ¶ms, (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT: compressionLevel);
4674 ZSTD_CCtx_params params)
4677 assert(!ZSTD_checkCParams(params.cParams));
4678 cdict->matchState.cParams = params.cParams;
4679 cdict->matchState.dedicatedDictSearch = params.enableDedicatedDictSearch;
4699 ¶ms.cParams,
4700 params.useRowMatchFinder,
4707 { params.compressionLevel = ZSTD_CLEVEL_DEFAULT;
4708 params.fParams.contentSizeFlag = 1;
4711 ¶ms, cdict->dictContent, cdict->dictContentSize,
4799 /* Fall back to non-DDSS params */
4889 ZSTD_CCtx_params params;
4905 ZSTD_CCtxParams_init(¶ms, 0);
4906 params.cParams = cParams;
4907 params.useRowMatchFinder = useRowMatchFinder;
4913 params) ))
4947 ZSTD_parameters params;
4948 params.fParams = fParams;
4949 params.cParams = ( pledgedSrcSize < ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF
4957 ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, cdict->compressionLevel);
5069 static ZSTD_cParamMode_e ZSTD_getCParamMode(ZSTD_CDict const* cdict, ZSTD_CCtx_params const* params, U64 pledgedSrcSize)
5071 if (cdict != NULL && ZSTD_shouldAttachDict(cdict, params, pledgedSrcSize))
5094 * Assumption 1 : params are valid
5098 const ZSTD_CCtx_params* params,
5104 assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams)));
5105 zcs->requestedParams = *params;
5147 ZSTD_parameters params, unsigned long long pss)
5153 U64 const pledgedSrcSize = (pss==0 && params.fParams.contentSizeFlag==0) ? ZSTD_CONTENTSIZE_UNKNOWN : pss;
5157 FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) , "");
5158 ZSTD_CCtxParams_setZstdParams(&zcs->requestedParams, ¶ms);
5427 ZSTD_CCtx_params params = cctx->requestedParams;
5433 /* Let the cdict's compression level take priority over the requested params.
5437 params.compressionLevel = cctx->cdict->compressionLevel;
5445 ZSTD_cParamMode_e const mode = ZSTD_getCParamMode(cctx->cdict, ¶ms, cctx->pledgedSrcSizePlusOne - 1);
5446 params.cParams = ZSTD_getCParamsFromCCtxParams(
5447 ¶ms, cctx->pledgedSrcSizePlusOne-1,
5451 params.useBlockSplitter = ZSTD_resolveBlockSplitterMode(params.useBlockSplitter, ¶ms.cParams);
5452 params.ldmParams.enableLdm = ZSTD_resolveEnableLdm(params.ldmParams.enableLdm, ¶ms.cParams);
5453 params.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params.useRowMatchFinder, ¶ms.cParams);
5456 assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams)));
5460 ¶ms, pledgedSrcSize,
6022 * search. This is used to recover the params set to be used in the working
6111 ZSTD_parameters params;
6114 ZSTD_memset(¶ms, 0, sizeof(params));
6115 params.cParams = cParams;
6116 params.fParams.contentSizeFlag = 1;
6117 return params;