函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\zstd\entropy_common.c Create Date:2022-07-27 08:05:57
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称: : size read from `src` , or an error Code .

函数原型:size_t HUF_readStats_wksp(BYTE *huffWeight, size_t hwSize, U32 *rankStats, U32 *nbSymbolsPtr, U32 *tableLogPtr, const void *src, size_t srcSize, void *workspace, size_t workspaceSize)

返回类型:size_t

参数:

类型参数名称
BYTE *huffWeight
size_thwSize
U32 *rankStats
U32 *nbSymbolsPtr
U32 *tableLogPtr
const void *src
size_tsrcSize
void *workspace
size_tworkspaceSize

摘要:! HUF_readStats() :Read compact Huffman tree, saved by HUF_writeCTable().`huffWeight` is destination buffer.`rankStats` is assumed to be a table of at least HUF_TABLELOG_MAX U32.Note : Needed by HUF_readCTable() and HUF_readDTableX?() .

170  ip等于src
174  如果非srcSize则返回:-***************************************** Error codes handling(srcSize_wrong)
176  iSize等于ip[0]
179  如果iSize大于等于128则
180  oSize等于iSize减127
181  iSize等于oSize加1的和除2
182  如果iSize加1大于srcSize则返回:-***************************************** Error codes handling(srcSize_wrong)
184  如果oSize大于等于hwSize则返回:-***************************************** Error codes handling(corruption_detected)
186  ip加等于1
189 n小于oSize循环
190  huffWeight[n]等于ip[n / 2]右移4位
191  huffWeight[n + 1]等于ip[n / 2]按位与15
194  否则
195  如果iSize加1大于srcSize则返回:-***************************************** Error codes handling(srcSize_wrong)
197  oSize等于FSE_decompress_wksp(huffWeight, hwSize - 1, ip + 1, iSize, 6, workspace, workspaceSize)
198  如果=== Error Management ===则返回:oSize
203  memset(rankStats, 0, (max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG + 1) * sizeof(U32))
204  weightTotal等于0
207 n小于oSize循环
210  rankStats[huffWeight[n]]自加
211  weightTotal加等于1左移huffWeight[n]位右移1位
214  如果weightTotal恒等于0则返回:-***************************************** Error codes handling(corruption_detected)
219  tableLog等于-*************************************************************** Internal functions加1
220  如果tableLog大于max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG 则返回:-***************************************** Error codes handling(corruption_detected)
222  tableLogPtr等于tableLog
225  total等于1左移tableLog
226  rest等于totalweightTotal
232  rankStats[lastWeight]自加
237  如果rankStats[1]小于2或rankStats[1]按位与1则返回:-***************************************** Error codes handling(corruption_detected)
241  nbSymbolsPtr等于oSize加1
242  返回:iSize加1
调用者
名称描述
HUF_readDTableX2_wksp
HUF_readDTableX4_wksp
HUF_readCTable_wksp