函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称: : 0, `fparamsPtr` is correctly filled,

函数原型:size_t ZSTD_getFrameParams(ZSTD_frameParams *fparamsPtr, const void *src, size_t srcSize)

返回类型:size_t

参数:

类型参数名称
ZSTD_frameParams *fparamsPtr
const void *src
size_tsrcSize

摘要:ZSTD_getFrameParams() :* decode Frame Header, or require larger `srcSize`.* >0, `srcSize` is too small, result is expected `srcSize`,* or an error code, which can be tested using ZSTD_isError()

209  ip等于src
211  如果srcSize小于ZSTD_frameHeaderSize_prefix则返回:ZSTD_frameHeaderSize_prefix
213  如果ZSTD_readLE32(src)不等于>= v0.8.0
214  如果ZSTD_readLE32(src)按位与0xFFFFFFF0U的值恒等于ZSTD_MAGIC_SKIPPABLE_START
217  memset(fparamsPtr, 0, fparamsPtr的长度)
218  frameContentSize等于ZSTD_readLE32((constchar * )src + 4)
219  windowSize等于0
220  返回:0
222  返回:-***************************************** Error codes handling(prefix_unknown)
227  fhsize等于 : size of the Frame Header
228  如果srcSize小于fhsize则返回:fhsize
233  fhdByte等于ip[4]
234  pos等于5
235  dictIDSizeCode等于fhdByte按位与3
236  checksumFlag等于fhdByte右移2位按位与1
237  singleSegment等于fhdByte右移5位按位与1
238  fcsID等于fhdByte右移6位
239  windowSizeMax等于1U左移ZSTD_WINDOWLOG_MAX
240  windowSize等于0
241  dictID等于0
242  frameContentSize等于0
243  如果fhdByte按位与0x08的值不等于0则返回:-***************************************** Error codes handling(frameParameter_unsupported)
245  如果非singleSegment
246  wlByte等于ip[pos++]
247  windowLog等于wlByte右移3位的值加ZSTD_WINDOWLOG_ABSOLUTEMIN
250  windowSize等于1U左移windowLog
251  windowSize加等于windowSize右移3位的值乘wlByte按位与7的值
255  默认
256  :dictIDSizeCode恒等于0
256  退出
257  :dictIDSizeCode恒等于1
258  dictID等于ip[pos]
259  pos自加
260  退出
261  :dictIDSizeCode恒等于2
263  pos加等于2
264  退出
265  :dictIDSizeCode恒等于3
266  dictID等于ZSTD_readLE32(ip + pos)
267  pos加等于4
268  退出
271  默认
272  :fcsID恒等于0
273  如果singleSegmentframeContentSize等于ip[pos]
275  退出
276  :fcsID恒等于1
277  :fcsID恒等于2
278  :fcsID恒等于3
280  如果非windowSizewindowSize等于frameContentSize
285  windowSize等于windowSize
286  dictID等于dictID
289  返回:0
调用者
名称描述
ZSTD_getFrameContentSize : decompressed size of the single frame pointed to be `src` if known, otherwise
ZSTD_decodeFrameHeader : 0 if success, or an error code, which can be tested using ZSTD_isError()
ZSTD_findFrameCompressedSize : the compressed size of the frame starting at `src`
ZSTD_getDictID_fromFrame! ZSTD_getDictID_fromFrame() :* Provides the dictID required to decompressed the frame stored within `src`.* If @return == 0, the dictID could not be decoded.* This could for one of the following reasons :
ZSTD_decompressStream