函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:HUF_readDTableX4_wksp

函数原型:size_t HUF_readDTableX4_wksp(HUF_DTable *DTable, const void *src, size_t srcSize, void *workspace, size_t workspaceSize)

返回类型:size_t

参数:

类型参数名称
HUF_DTable *DTable
const void *src
size_tsrcSize
void *workspace
size_tworkspaceSize
485  dtd等于HUF_getDTableDesc(DTable)
486  maxTableLog等于maxTableLog
488  dtPtr等于DTable加1
489  dt等于dtPtr
497  spaceUsed32等于0
501  rankVal等于workspacespaceUsed32
502  spaceUsed32加等于sizeof(rankValCol_t)乘max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG 右移2位
503  rankStats等于workspacespaceUsed32
504  spaceUsed32加等于max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG 加1
505  rankStart0等于workspacespaceUsed32
506  spaceUsed32加等于max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG 加2
507  sortedSymbol等于workspacespaceUsed32
508  spaceUsed32加等于@a is a power of 2 value (sizeof(sortedSymbol_t) * (HUF_SYMBOLVALUE_MAX + 1), sizeof(U32))右移2位
509  weightList等于workspacespaceUsed32
510  spaceUsed32加等于@a is a power of 2 value (HUF_SYMBOLVALUE_MAX + 1, sizeof(U32))右移2位
512  如果spaceUsed32左移2位大于workspaceSize则返回:-***************************************** Error codes handling(tableLog_tooLarge)
514  workspace等于workspacespaceUsed32
515  workspaceSize减等于spaceUsed32左移2位
517  rankStart等于rankStart0加1
518  memset(rankStats, 0, sizeof(U32) * (2 * max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG + 2 + 1))
521  如果maxTableLog大于max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG 则返回:-***************************************** Error codes handling(tableLog_tooLarge)
525  iSize等于 : size read from `src` , or an error Code .
526  如果HUF_isError(iSize)则返回:iSize
530  如果tableLog大于maxTableLog则返回:-***************************************** Error codes handling(tableLog_tooLarge)
534 rankStats[maxW]恒等于0循环
539  nextRankStart等于0
540 w小于maxW加1循环
541  curr等于nextRankStart
542  nextRankStart加等于rankStats[w]
543  rankStart[w]等于curr
545  rankStart[0]等于nextRankStart
546  sizeOfSort等于nextRankStart
552 s小于nbSymbols循环
553  w等于weightList[s]
554  r等于rankStart[w]自加
555  symbol等于s
556  weight等于w
558  rankStart[0]等于0
563  rankVal0等于rankVal[0]
565  rescale等于maxTableLogtableLog减1
566  nextRankVal等于0
568 w小于maxW加1循环
569  curr等于nextRankVal
570  nextRankVal加等于rankStats[w]左移wrescale
571  rankVal0[w]等于curr
575  minBits等于tableLog加1减maxW
577 consumed小于maxTableLogminBits加1循环
580 w小于maxW加1循环
581  rankValPtr[w]等于rankVal0[w]右移consumed
587  HUF_fillDTableX4(dt, maxTableLog, sortedSymbol, sizeOfSort, rankStart0, rankVal, maxW, tableLog + 1)
589  tableLog等于maxTableLog
590  tableType等于1
591  内存复制(DTable, & dtd, dtd的长度)
592  返回:iSize
调用者
名称描述
HUF_decompress1X4_DCtx_wksp
HUF_decompress4X4_DCtx_wksp
ZSTD_loadEntropy : size of entropy tables read