Lines Matching refs:prefs
400 void FIO_freePreferences(FIO_prefs_t* const prefs) in FIO_freePreferences() argument
402 free(prefs); in FIO_freePreferences()
426 void FIO_setCompressionType(FIO_prefs_t* const prefs, FIO_compressionType_t compressionType) { pref… in FIO_setCompressionType() argument
428 void FIO_overwriteMode(FIO_prefs_t* const prefs) { prefs->overwrite = 1; } in FIO_overwriteMode() argument
430 void FIO_setSparseWrite(FIO_prefs_t* const prefs, unsigned sparse) { prefs->sparseFileSupport = spa… in FIO_setSparseWrite() argument
432 void FIO_setDictIDFlag(FIO_prefs_t* const prefs, int dictIDFlag) { prefs->dictIDFlag = dictIDFlag; } in FIO_setDictIDFlag() argument
434 void FIO_setChecksumFlag(FIO_prefs_t* const prefs, int checksumFlag) { prefs->checksumFlag = checks… in FIO_setChecksumFlag() argument
436 void FIO_setRemoveSrcFile(FIO_prefs_t* const prefs, unsigned flag) { prefs->removeSrcFile = (flag>0… in FIO_setRemoveSrcFile() argument
438 void FIO_setMemLimit(FIO_prefs_t* const prefs, unsigned memLimit) { prefs->memLimit = memLimit; } in FIO_setMemLimit() argument
440 void FIO_setNbWorkers(FIO_prefs_t* const prefs, int nbWorkers) { in FIO_setNbWorkers() argument
444 prefs->nbWorkers = nbWorkers; in FIO_setNbWorkers()
447 void FIO_setExcludeCompressedFile(FIO_prefs_t* const prefs, int excludeCompressedFiles) { prefs->ex… in FIO_setExcludeCompressedFile() argument
449 void FIO_setBlockSize(FIO_prefs_t* const prefs, int blockSize) { in FIO_setBlockSize() argument
450 if (blockSize && prefs->nbWorkers==0) in FIO_setBlockSize()
452 prefs->blockSize = blockSize; in FIO_setBlockSize()
455 void FIO_setOverlapLog(FIO_prefs_t* const prefs, int overlapLog){ in FIO_setOverlapLog() argument
456 if (overlapLog && prefs->nbWorkers==0) in FIO_setOverlapLog()
458 prefs->overlapLog = overlapLog; in FIO_setOverlapLog()
461 void FIO_setAdaptiveMode(FIO_prefs_t* const prefs, unsigned adapt) { in FIO_setAdaptiveMode() argument
462 if ((adapt>0) && (prefs->nbWorkers==0)) in FIO_setAdaptiveMode()
464 prefs->adaptiveMode = adapt; in FIO_setAdaptiveMode()
467 void FIO_setRsyncable(FIO_prefs_t* const prefs, int rsyncable) { in FIO_setRsyncable() argument
468 if ((rsyncable>0) && (prefs->nbWorkers==0)) in FIO_setRsyncable()
470 prefs->rsyncable = rsyncable; in FIO_setRsyncable()
473 void FIO_setStreamSrcSize(FIO_prefs_t* const prefs, size_t streamSrcSize) { in FIO_setStreamSrcSize() argument
474 prefs->streamSrcSize = streamSrcSize; in FIO_setStreamSrcSize()
477 void FIO_setTargetCBlockSize(FIO_prefs_t* const prefs, size_t targetCBlockSize) { in FIO_setTargetCBlockSize() argument
478 prefs->targetCBlockSize = targetCBlockSize; in FIO_setTargetCBlockSize()
481 void FIO_setSrcSizeHint(FIO_prefs_t* const prefs, size_t srcSizeHint) { in FIO_setSrcSizeHint() argument
482 prefs->srcSizeHint = (int)MIN((size_t)INT_MAX, srcSizeHint); in FIO_setSrcSizeHint()
485 void FIO_setTestMode(FIO_prefs_t* const prefs, int testMode) { in FIO_setTestMode() argument
486 prefs->testMode = (testMode!=0); in FIO_setTestMode()
490 FIO_prefs_t* const prefs, in FIO_setLiteralCompressionMode() argument
492 prefs->literalCompressionMode = mode; in FIO_setLiteralCompressionMode()
495 void FIO_setAdaptMin(FIO_prefs_t* const prefs, int minCLevel) in FIO_setAdaptMin() argument
500 prefs->minAdaptLevel = minCLevel; in FIO_setAdaptMin()
503 void FIO_setAdaptMax(FIO_prefs_t* const prefs, int maxCLevel) in FIO_setAdaptMax() argument
505 prefs->maxAdaptLevel = maxCLevel; in FIO_setAdaptMax()
508 void FIO_setLdmFlag(FIO_prefs_t* const prefs, unsigned ldmFlag) { in FIO_setLdmFlag() argument
509 prefs->ldmFlag = (ldmFlag>0); in FIO_setLdmFlag()
512 void FIO_setLdmHashLog(FIO_prefs_t* const prefs, int ldmHashLog) { in FIO_setLdmHashLog() argument
513 prefs->ldmHashLog = ldmHashLog; in FIO_setLdmHashLog()
516 void FIO_setLdmMinMatch(FIO_prefs_t* const prefs, int ldmMinMatch) { in FIO_setLdmMinMatch() argument
517 prefs->ldmMinMatch = ldmMinMatch; in FIO_setLdmMinMatch()
520 void FIO_setLdmBucketSizeLog(FIO_prefs_t* const prefs, int ldmBucketSizeLog) { in FIO_setLdmBucketSizeLog() argument
521 prefs->ldmBucketSizeLog = ldmBucketSizeLog; in FIO_setLdmBucketSizeLog()
525 void FIO_setLdmHashRateLog(FIO_prefs_t* const prefs, int ldmHashRateLog) { in FIO_setLdmHashRateLog() argument
526 prefs->ldmHashRateLog = ldmHashRateLog; in FIO_setLdmHashRateLog()
529 void FIO_setPatchFromMode(FIO_prefs_t* const prefs, int value) in FIO_setPatchFromMode() argument
531 prefs->patchFromMode = value != 0; in FIO_setPatchFromMode()
534 void FIO_setContentSize(FIO_prefs_t* const prefs, int value) in FIO_setContentSize() argument
536 prefs->contentSize = value != 0; in FIO_setContentSize()
624 FIO_openDstFile(FIO_ctx_t* fCtx, FIO_prefs_t* const prefs, in FIO_openDstFile() argument
627 if (prefs->testMode) return NULL; /* do not open file in test mode */ in FIO_openDstFile()
633 if (prefs->sparseFileSupport == 1) { in FIO_openDstFile()
634 prefs->sparseFileSupport = 0; in FIO_openDstFile()
646 if (prefs->sparseFileSupport == 1) { in FIO_openDstFile()
647 prefs->sparseFileSupport = ZSTD_SPARSE_DEFAULT; in FIO_openDstFile()
663 if (!prefs->overwrite) { in FIO_openDstFile()
697 static size_t FIO_createDictBuffer(void** bufferPtr, const char* fileName, FIO_prefs_t* const prefs) in FIO_createDictBuffer() argument
712 size_t const dictSizeMax = prefs->patchFromMode ? prefs->memLimit : DICTSIZE_MAX; in FIO_createDictBuffer()
826 static void FIO_adjustMemLimitForPatchFromMode(FIO_prefs_t* const prefs, in FIO_adjustMemLimitForPatchFromMode() argument
830 unsigned long long maxSize = MAX(prefs->memLimit, MAX(dictSize, maxSrcFileSize)); in FIO_adjustMemLimitForPatchFromMode()
837 FIO_setMemLimit(prefs, (unsigned)maxSize); in FIO_adjustMemLimitForPatchFromMode()
852 static int FIO_removeMultiFilesWarning(FIO_ctx_t* const fCtx, const FIO_prefs_t* const prefs, const… in FIO_removeMultiFilesWarning() argument
855 if (fCtx->nbFilesTotal > 1 && !prefs->overwrite) { in FIO_removeMultiFilesWarning()
857 if (prefs->removeSrcFile) { in FIO_removeMultiFilesWarning()
868 if (prefs->removeSrcFile) { in FIO_removeMultiFilesWarning()
900 static void FIO_adjustParamsForPatchFromMode(FIO_prefs_t* const prefs, in FIO_adjustParamsForPatchFromMode() argument
908 FIO_adjustMemLimitForPatchFromMode(prefs, dictSize, maxSrcFileSize); in FIO_adjustParamsForPatchFromMode()
913 if (!prefs->ldmFlag) in FIO_adjustParamsForPatchFromMode()
915 FIO_setLdmFlag(prefs, 1); in FIO_adjustParamsForPatchFromMode()
926 static cRess_t FIO_createCResources(FIO_prefs_t* const prefs, in FIO_createCResources() argument
943 if (prefs->patchFromMode) { in FIO_createCResources()
944 unsigned long long const ssSize = (unsigned long long)prefs->streamSrcSize; in FIO_createCResources()
945 …FIO_adjustParamsForPatchFromMode(prefs, &comprParams, UTIL_getFileSize(dictFileName), ssSize > 0 ?… in FIO_createCResources()
948 …ress.dictBufferSize = FIO_createDictBuffer(&ress.dictBuffer, dictFileName, prefs); /* works with… in FIO_createCResources()
957 if (prefs->adaptiveMode && !prefs->ldmFlag && !comprParams.windowLog) in FIO_createCResources()
960 …CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_contentSizeFlag, prefs->contentSize) ); /* always… in FIO_createCResources()
961 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_dictIDFlag, prefs->dictIDFlag) ); in FIO_createCResources()
962 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_checksumFlag, prefs->checksumFlag) ); in FIO_createCResources()
966 … CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_targetCBlockSize, (int)prefs->targetCBlockSize) ); in FIO_createCResources()
968 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_srcSizeHint, (int)prefs->srcSizeHint) ); in FIO_createCResources()
970 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_enableLongDistanceMatching, prefs->ldmFlag) ); in FIO_createCResources()
971 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_ldmHashLog, prefs->ldmHashLog) ); in FIO_createCResources()
972 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_ldmMinMatch, prefs->ldmMinMatch) ); in FIO_createCResources()
973 if (prefs->ldmBucketSizeLog != FIO_LDM_PARAM_NOTSET) { in FIO_createCResources()
974 … CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_ldmBucketSizeLog, prefs->ldmBucketSizeLog) ); in FIO_createCResources()
976 if (prefs->ldmHashRateLog != FIO_LDM_PARAM_NOTSET) { in FIO_createCResources()
977 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_ldmHashRateLog, prefs->ldmHashRateLog) ); in FIO_createCResources()
987 …CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_literalCompressionMode, (int)prefs->literalCompres… in FIO_createCResources()
991 DISPLAYLEVEL(5,"set nb workers = %u \n", prefs->nbWorkers); in FIO_createCResources()
992 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_nbWorkers, prefs->nbWorkers) ); in FIO_createCResources()
993 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_jobSize, prefs->blockSize) ); in FIO_createCResources()
994 if (prefs->overlapLog != FIO_OVERLAP_LOG_NOTSET) { in FIO_createCResources()
995 DISPLAYLEVEL(3,"set overlapLog = %u \n", prefs->overlapLog); in FIO_createCResources()
996 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_overlapLog, prefs->overlapLog) ); in FIO_createCResources()
998 CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_rsyncable, prefs->rsyncable) ); in FIO_createCResources()
1001 if (prefs->patchFromMode) { in FIO_createCResources()
1191 LZ4F_preferences_t prefs; in FIO_compressLz4Frame() local
1198 memset(&prefs, 0, sizeof(prefs)); in FIO_compressLz4Frame()
1202 prefs.autoFlush = 1; in FIO_compressLz4Frame()
1203 prefs.compressionLevel = compressionLevel; in FIO_compressLz4Frame()
1204 prefs.frameInfo.blockMode = LZ4F_blockLinked; in FIO_compressLz4Frame()
1205 prefs.frameInfo.blockSizeID = LZ4F_max64KB; in FIO_compressLz4Frame()
1206 prefs.frameInfo.contentChecksumFlag = (contentChecksum_t)checksumFlag; in FIO_compressLz4Frame()
1208 prefs.frameInfo.contentSize = (srcFileSize==UTIL_FILESIZE_UNKNOWN) ? 0 : srcFileSize; in FIO_compressLz4Frame()
1210 assert(LZ4F_compressBound(blockSize, &prefs) <= ress->dstBufferSize); in FIO_compressLz4Frame()
1214 size_t headerSize = LZ4F_compressBegin(ctx, ress->dstBuffer, ress->dstBufferSize, &prefs); in FIO_compressLz4Frame()
1281 FIO_prefs_t* const prefs, in FIO_compressZstdFrame() argument
1307 } else if (prefs->streamSrcSize > 0) { in FIO_compressZstdFrame()
1309 CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, prefs->streamSrcSize) ); in FIO_compressZstdFrame()
1385 if (prefs->adaptiveMode) { in FIO_compressZstdFrame()
1393 assert(prefs->nbWorkers >= 1); in FIO_compressZstdFrame()
1422 …if (zfp.currentJobID > (unsigned)(prefs->nbWorkers+1)) { /* warm up period, to fill all workers … in FIO_compressZstdFrame()
1454 … if (compressionLevel > prefs->maxAdaptLevel) compressionLevel = prefs->maxAdaptLevel; in FIO_compressZstdFrame()
1461 … if (compressionLevel < prefs->minAdaptLevel) compressionLevel = prefs->minAdaptLevel; in FIO_compressZstdFrame()
1492 FIO_prefs_t* const prefs, in FIO_compressFilename_internal() argument
1505 switch (prefs->compressionType) { in FIO_compressFilename_internal()
1508 …compressedfilesize = FIO_compressZstdFrame(fCtx, prefs, &ress, srcFileName, fileSize, compressionL… in FIO_compressFilename_internal()
1524 …pressLzmaFrame(&ress, srcFileName, fileSize, compressionLevel, &readsize, prefs->compressionType==… in FIO_compressFilename_internal()
1534 …ze = FIO_compressLz4Frame(&ress, srcFileName, fileSize, compressionLevel, prefs->checksumFlag, &re… in FIO_compressFilename_internal()
1587 FIO_prefs_t* const prefs, in FIO_compressFilename_dstFile() argument
1601 ress.dstFile = FIO_openDstFile(fCtx, prefs, srcFileName, dstFileName); in FIO_compressFilename_dstFile()
1615 …result = FIO_compressFilename_internal(fCtx, prefs, ress, dstFileName, srcFileName, compressionLev… in FIO_compressFilename_dstFile()
1665 FIO_prefs_t* const prefs, in FIO_compressFilename_srcFile() argument
1690 …if (prefs->excludeCompressedFiles == 1 && UTIL_isCompressedFile(srcFileName, compressedFileExtensi… in FIO_compressFilename_srcFile()
1698 …result = FIO_compressFilename_dstFile(fCtx, prefs, ress, dstFileName, srcFileName, compressionLeve… in FIO_compressFilename_srcFile()
1702 if ( prefs->removeSrcFile /* --rm */ in FIO_compressFilename_srcFile()
1716 int FIO_compressFilename(FIO_ctx_t* const fCtx, FIO_prefs_t* const prefs, const char* dstFileName, in FIO_compressFilename() argument
1720 …cRess_t const ress = FIO_createCResources(prefs, dictFileName, UTIL_getFileSize(srcFileName), comp… in FIO_compressFilename()
1721 …int const result = FIO_compressFilename_srcFile(fCtx, prefs, ress, dstFileName, srcFileName, compr… in FIO_compressFilename()
1787 FIO_prefs_t* const prefs, in FIO_compressMultipleFilenames() argument
1797 cRess_t ress = FIO_createCResources(prefs, dictFileName, in FIO_compressMultipleFilenames()
1804 if (FIO_removeMultiFilesWarning(fCtx, prefs, outFileName, 1 /* displayLevelCutoff */)) { in FIO_compressMultipleFilenames()
1808 ress.dstFile = FIO_openDstFile(fCtx, prefs, NULL, outFileName); in FIO_compressMultipleFilenames()
1813 …status = FIO_compressFilename_srcFile(fCtx, prefs, ress, outFileName, inFileNamesTable[fCtx->currF… in FIO_compressMultipleFilenames()
1842 …status = FIO_compressFilename_srcFile(fCtx, prefs, ress, dstFileName, srcFileName, compressionLeve… in FIO_compressMultipleFilenames()
1881 static dRess_t FIO_createDResources(FIO_prefs_t* const prefs, const char* dictFileName) in FIO_createDResources() argument
1886 if (prefs->patchFromMode) in FIO_createDResources()
1887 …FIO_adjustMemLimitForPatchFromMode(prefs, UTIL_getFileSize(dictFileName), 0 /* just use the dict s… in FIO_createDResources()
1893 CHECK( ZSTD_DCtx_setMaxWindowSize(ress.dctx, prefs->memLimit) ); in FIO_createDResources()
1894 CHECK( ZSTD_DCtx_setParameter(ress.dctx, ZSTD_d_forceIgnoreChecksum, !prefs->checksumFlag)); in FIO_createDResources()
1905 size_t const dictBufferSize = FIO_createDictBuffer(&dictBuffer, dictFileName, prefs); in FIO_createDResources()
1927 const FIO_prefs_t* const prefs, in FIO_fwriteSparse() argument
1936 if (prefs->testMode) return 0; /* do not output anything in test mode */ in FIO_fwriteSparse()
1938 if (!prefs->sparseFileSupport) { /* normal write */ in FIO_fwriteSparse()
2003 FIO_fwriteSparseEnd(const FIO_prefs_t* const prefs, FILE* file, unsigned storedSkips) in FIO_fwriteSparseEnd() argument
2005 if (prefs->testMode) assert(storedSkips == 0); in FIO_fwriteSparseEnd()
2007 assert(prefs->sparseFileSupport > 0); /* storedSkips>0 implies sparse support is enabled */ in FIO_fwriteSparseEnd()
2008 (void)prefs; /* assert can be disabled, in which case prefs becomes unused */ in FIO_fwriteSparseEnd()
2022 static int FIO_passThrough(const FIO_prefs_t* const prefs, in FIO_passThrough() argument
2040 storedSkips = FIO_fwriteSparse(foutput, buffer, readFromInput, prefs, storedSkips); in FIO_passThrough()
2048 FIO_fwriteSparseEnd(prefs, foutput, storedSkips); in FIO_passThrough()
2055 FIO_zstdErrorHelp(const FIO_prefs_t* const prefs, in FIO_zstdErrorHelp() argument
2070 assert(prefs->memLimit > 0); in FIO_zstdErrorHelp()
2072 srcFileName, windowSize, prefs->memLimit); in FIO_zstdErrorHelp()
2090 const FIO_prefs_t* const prefs, in FIO_decompressZstdFrame() argument
2120 FIO_zstdErrorHelp(prefs, ress, readSizeHint, srcFileName); in FIO_decompressZstdFrame()
2125 … storedSkips = FIO_fwriteSparse(ress->dstFile, ress->dstBuffer, outBuff.pos, prefs, storedSkips); in FIO_decompressZstdFrame()
2165 FIO_fwriteSparseEnd(prefs, ress->dstFile, storedSkips); in FIO_decompressZstdFrame()
2174 const FIO_prefs_t* const prefs, in FIO_decompressGzFrame() argument
2216 … storedSkips = FIO_fwriteSparse(ress->dstFile, ress->dstBuffer, decompBytes, prefs, storedSkips); in FIO_decompressGzFrame()
2233 FIO_fwriteSparseEnd(prefs, ress->dstFile, storedSkips); in FIO_decompressGzFrame()
2242 const FIO_prefs_t* const prefs, in FIO_decompressLzmaFrame() argument
2293 … storedSkips = FIO_fwriteSparse(ress->dstFile, ress->dstBuffer, decompBytes, prefs, storedSkips); in FIO_decompressLzmaFrame()
2305 FIO_fwriteSparseEnd(prefs, ress->dstFile, storedSkips); in FIO_decompressLzmaFrame()
2313 const FIO_prefs_t* const prefs, in FIO_decompressLz4Frame() argument
2365 … storedSkips = FIO_fwriteSparse(ress->dstFile, ress->dstBuffer, decodedBytes, prefs, storedSkips); in FIO_decompressLz4Frame()
2386 FIO_fwriteSparseEnd(prefs, ress->dstFile, storedSkips); in FIO_decompressLz4Frame()
2402 const FIO_prefs_t* const prefs, in FIO_decompressFrames() argument
2430 …long long const frameSize = FIO_decompressZstdFrame(fCtx, &ress, srcFile, prefs, srcFileName, file… in FIO_decompressFrames()
2435 … unsigned long long const frameSize = FIO_decompressGzFrame(&ress, srcFile, prefs, srcFileName); in FIO_decompressFrames()
2445 …unsigned long long const frameSize = FIO_decompressLzmaFrame(&ress, srcFile, prefs, srcFileName, b… in FIO_decompressFrames()
2454 … unsigned long long const frameSize = FIO_decompressLz4Frame(&ress, srcFile, prefs, srcFileName); in FIO_decompressFrames()
2461 … } else if ((prefs->overwrite) && !strcmp (dstFileName, stdoutmark)) { /* pass-through mode */ in FIO_decompressFrames()
2462 return FIO_passThrough(prefs, in FIO_decompressFrames()
2492 FIO_prefs_t* const prefs, in FIO_decompressDstFile() argument
2501 if ((ress.dstFile == NULL) && (prefs->testMode==0)) { in FIO_decompressDstFile()
2504 ress.dstFile = FIO_openDstFile(fCtx, prefs, srcFileName, dstFileName); in FIO_decompressDstFile()
2519 result = FIO_decompressFrames(fCtx, ress, srcFile, prefs, dstFileName, srcFileName); in FIO_decompressDstFile()
2548 static int FIO_decompressSrcFile(FIO_ctx_t* const fCtx, FIO_prefs_t* const prefs, dRess_t ress, con… in FIO_decompressSrcFile() argument
2562 result = FIO_decompressDstFile(fCtx, prefs, ress, srcFile, dstFileName, srcFileName); in FIO_decompressSrcFile()
2569 if ( prefs->removeSrcFile /* --rm */ in FIO_decompressSrcFile()
2586 int FIO_decompressFilename(FIO_ctx_t* const fCtx, FIO_prefs_t* const prefs, in FIO_decompressFilename() argument
2590 dRess_t const ress = FIO_createDResources(prefs, dictFileName); in FIO_decompressFilename()
2592 int const decodingError = FIO_decompressSrcFile(fCtx, prefs, ress, dstFileName, srcFileName); in FIO_decompressFilename()
2721 FIO_prefs_t* const prefs, in FIO_decompressMultipleFilenames() argument
2729 dRess_t ress = FIO_createDResources(prefs, dictFileName); in FIO_decompressMultipleFilenames()
2732 if (FIO_removeMultiFilesWarning(fCtx, prefs, outFileName, 1 /* displayLevelCutoff */)) { in FIO_decompressMultipleFilenames()
2736 if (!prefs->testMode) { in FIO_decompressMultipleFilenames()
2737 ress.dstFile = FIO_openDstFile(fCtx, prefs, NULL, outFileName); in FIO_decompressMultipleFilenames()
2741 … status = FIO_decompressSrcFile(fCtx, prefs, ress, outFileName, srcNamesTable[fCtx->currFileIdx]); in FIO_decompressMultipleFilenames()
2745 if ((!prefs->testMode) && (fclose(ress.dstFile))) in FIO_decompressMultipleFilenames()
2767 status = FIO_decompressSrcFile(fCtx, prefs, ress, dstFileName, srcFileName); in FIO_decompressMultipleFilenames()