Path: blob/main/sys/contrib/zstd/lib/deprecated/zbuff_decompress.c
48378 views
/*1* Copyright (c) Yann Collet, Facebook, Inc.2* All rights reserved.3*4* This source code is licensed under both the BSD-style license (found in the5* LICENSE file in the root directory of this source tree) and the GPLv2 (found6* in the COPYING file in the root directory of this source tree).7* You may select, at your option, one of the above-listed licenses.8*/9101112/* *************************************13* Dependencies14***************************************/15#define ZBUFF_STATIC_LINKING_ONLY16#include "zbuff.h"171819ZBUFF_DCtx* ZBUFF_createDCtx(void)20{21return ZSTD_createDStream();22}2324ZBUFF_DCtx* ZBUFF_createDCtx_advanced(ZSTD_customMem customMem)25{26return ZSTD_createDStream_advanced(customMem);27}2829size_t ZBUFF_freeDCtx(ZBUFF_DCtx* zbd)30{31return ZSTD_freeDStream(zbd);32}333435/* *** Initialization *** */3637size_t ZBUFF_decompressInitDictionary(ZBUFF_DCtx* zbd, const void* dict, size_t dictSize)38{39return ZSTD_initDStream_usingDict(zbd, dict, dictSize);40}4142size_t ZBUFF_decompressInit(ZBUFF_DCtx* zbd)43{44return ZSTD_initDStream(zbd);45}464748/* *** Decompression *** */4950size_t ZBUFF_decompressContinue(ZBUFF_DCtx* zbd,51void* dst, size_t* dstCapacityPtr,52const void* src, size_t* srcSizePtr)53{54ZSTD_outBuffer outBuff;55ZSTD_inBuffer inBuff;56size_t result;57outBuff.dst = dst;58outBuff.pos = 0;59outBuff.size = *dstCapacityPtr;60inBuff.src = src;61inBuff.pos = 0;62inBuff.size = *srcSizePtr;63result = ZSTD_decompressStream(zbd, &outBuff, &inBuff);64*dstCapacityPtr = outBuff.pos;65*srcSizePtr = inBuff.pos;66return result;67}686970/* *************************************71* Tool functions72***************************************/73size_t ZBUFF_recommendedDInSize(void) { return ZSTD_DStreamInSize(); }74size_t ZBUFF_recommendedDOutSize(void) { return ZSTD_DStreamOutSize(); }757677