函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:-*************************************************************** FSE NCount encoding-decoding

函数原型:size_t FSE_readNCount(short *normalizedCounter, unsigned *maxSVPtr, unsigned *tableLogPtr, const void *headerBuffer, size_t hbSize)

返回类型:size_t

参数:

类型参数名称
short *normalizedCounter
unsigned *maxSVPtr
unsigned *tableLogPtr
const void *headerBuffer
size_thbSize
61  istart等于headerBuffer
62  iend等于istarthbSize
63  ip等于istart
69  charnum等于0
70  previous0等于0
72  如果hbSize小于4则返回:-***************************************** Error codes handling(srcSize_wrong)
74  bitStream等于ZSTD_readLE32(ip)
75  nbBits等于bitStream按位与0xF的值加FSE_MIN_TABLELOG
76  如果nbBits大于FSE_TABLELOG_ABSOLUTE_MAX则返回:-***************************************** Error codes handling(tableLog_tooLarge)
78  bitStream右移等于4位
79  bitCount等于4
80  tableLogPtr等于nbBits
81  remaining等于1左移nbBits位的值加1
82  threshold等于1左移nbBits
83  nbBits自加
85 remaining大于1按位与charnum小于等于maxSVPtr循环
86  如果previous0
87  n0等于charnum
88 bitStream按位与0xFFFF的值恒等于0xFFFF循环
89  n0加等于24
90  如果ip小于iend减5则
91  ip加等于2
92  bitStream等于ZSTD_readLE32(ip)右移bitCount
93  否则
94  bitStream右移等于16位
95  bitCount加等于16
98 bitStream按位与3的值恒等于3循环
99  n0加等于3
100  bitStream右移等于2位
101  bitCount加等于2
103  n0加等于bitStream按位与3
104  bitCount加等于2
107 charnum小于n0循环
108  normalizedCounter[charnum++]等于0
109  如果ip小于等于iend减7或ipbitCount右移3位的值小于等于iend减4则
110  ip加等于bitCount右移3位
111  bitCount与等于7
112  bitStream等于ZSTD_readLE32(ip)右移bitCount
113  否则
114  bitStream右移等于2位
118  max等于2乘threshold减1减remaining
121  如果bitStream按位与threshold减1的值小于max
122  count等于bitStream按位与threshold减1
123  bitCount加等于nbBits减1
124  否则
125  count等于bitStream按位与2乘threshold减1
126  如果count大于等于thresholdcount减等于max
128  bitCount加等于nbBits
131  count自减
132  remaining减等于如果count小于0则负count否则count
134  previous0等于非count
135 remaining小于threshold循环
136  nbBits自减
137  threshold右移等于1位
140  如果ip小于等于iend减7或ipbitCount右移3位的值小于等于iend减4则
141  ip加等于bitCount右移3位
142  bitCount与等于7
143  否则
144  bitCount减等于8乘iend减4减ip的差
145  ip等于iend减4
147  bitStream等于ZSTD_readLE32(ip)右移bitCount按位与31的值位
150  如果remaining不等于1则返回:-***************************************** Error codes handling(corruption_detected)
152  如果bitCount大于32则返回:-***************************************** Error codes handling(corruption_detected)
154  maxSVPtr等于charnum减1
156  ip加等于bitCount加7右移3位
157  返回:ipistart
调用者
名称描述
ZSTD_loadZstdDictionary : 0, or an error code
FSE_decompress_wksp
ZSTD_buildSeqTable : nb bytes read from src,
ZSTD_loadEntropy : size of entropy tables read