函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Decode the Block Header and initialize the filter chain.

函数原型:static enum xz_ret dec_block_header(struct xz_dec *s)

返回类型:enum xz_ret

参数:

类型参数名称
struct xz_dec *s
457  size减等于4
458  如果xz_crc32(buf, size, 0)不等于get_le32(buf + size)则返回:XZ_DATA_ERROR
462  pos等于2
471  如果buf[1]按位与0x3F则返回:XZ_OPTIONS_ERROR
476  如果buf[1]按位与0x40则
477  如果Decode a variable-length integer (little-endian base-128 encoding) 不等于XZ_STREAM_END则返回:XZ_DATA_ERROR
481  Value stored in the Compressed Size field, or* VLI_UNKNOWN if Compressed Size is not present.等于 Variable-length integer decoded by dec_vli()
482  否则
483  Value stored in the Compressed Size field, or* VLI_UNKNOWN if Compressed Size is not present.等于VLI_UNKNOWN
487  如果buf[1]按位与0x80则
488  如果Decode a variable-length integer (little-endian base-128 encoding) 不等于XZ_STREAM_END则返回:XZ_DATA_ERROR
492  Value stored in the Uncompressed Size field, or* VLI_UNKNOWN if Uncompressed Size is not present.等于 Variable-length integer decoded by dec_vli()
493  否则
494  Value stored in the Uncompressed Size field, or* VLI_UNKNOWN if Uncompressed Size is not present.等于VLI_UNKNOWN
518  如果sizepos小于2则返回:XZ_DATA_ERROR
522  如果buf[pos++]不等于0x21则返回:XZ_OPTIONS_ERROR
526  如果buf[pos++]不等于0x01则返回:XZ_OPTIONS_ERROR
530  如果sizepos小于1则返回:XZ_DATA_ERROR
533  ret等于xz_dec_lzma2_reset(lzma2, buf[pos++])
534  如果ret不等于XZ_OK则返回:ret
538 pos小于size循环
539  如果buf[pos++]不等于0x00则返回:XZ_OPTIONS_ERROR
542  pos等于0
543  Observed compressed size of the current Block 等于0
544  Observed uncompressed size of the current Block 等于0
546  返回:XZ_OK
调用者
名称描述
dec_main