Function report |
Source Code:lib\xz\xz_dec_lzma2.c |
Create Date:2022-07-28 07:08:50 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Take care of the LZMA2 control layer, and forward the job of actual LZMA* decoding or copying of uncompressed chunks to other functions.
Proto:enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s, struct xz_buf *b)
Type:enum xz_ret
Parameter:
Type | Parameter | Name |
---|---|---|
struct xz_dec_lzma2 * | s | |
struct xz_buf * | b |
936 | When in_pos < in_size || Position in xz_dec_lzma2_run(). == SEQ_LZMA_RUN cycle |
938 | Case Position in xz_dec_lzma2_run(). == SEQ_CONTROL |
972 | If tmp == 0x00 Then Return XZ_STREAM_END |
980 | Return XZ_DATA_ERROR |
983 | If tmp >= 0x80 Then |
984 | Uncompressed size of LZMA chunk (2 MiB at maximum) = (tmp & 0x1F) << 16 |
987 | If tmp >= 0xC0 Then |
998 | Return XZ_DATA_ERROR |
1000 | Else |
1006 | Else |
1007 | If tmp > 0x02 Then Return XZ_DATA_ERROR |
1014 | Break |
1016 | Case Position in xz_dec_lzma2_run(). == SEQ_UNCOMPRESSED_1 |
1017 | Uncompressed size of LZMA chunk (2 MiB at maximum) += in[in_pos++] << 8 |
1020 | Break |
1022 | Case Position in xz_dec_lzma2_run(). == SEQ_UNCOMPRESSED_2 |
1023 | Uncompressed size of LZMA chunk (2 MiB at maximum) += in[in_pos++] + 1 |
1026 | Break |
1028 | Case Position in xz_dec_lzma2_run(). == SEQ_COMPRESSED_0 |
1029 | * Compressed size of LZMA chunk or compressed/uncompressed * size of uncompressed chunk (64 KiB at maximum) = in[in_pos++] << 8 |
1032 | Break |
1034 | Case Position in xz_dec_lzma2_run(). == SEQ_COMPRESSED_1 |
1035 | * Compressed size of LZMA chunk or compressed/uncompressed * size of uncompressed chunk (64 KiB at maximum) += in[in_pos++] + 1 |
1037 | Position in xz_dec_lzma2_run(). = Next position after decoding the compressed size of the chunk. |
1038 | Break |
1040 | Case Position in xz_dec_lzma2_run(). == SEQ_PROPERTIES |
1048 | Case Position in xz_dec_lzma2_run(). == SEQ_LZMA_PREPARE |
1052 | If Not Read the first five initial bytes into rc->code if they haven't been* read already. (Yes, the first byte gets completely ignored.) Then Return XZ_OK |
1060 | Case Position in xz_dec_lzma2_run(). == SEQ_LZMA_RUN |
1073 | If Not The LZMA decoder assumes that if the input limit (s->rc Then Return XZ_DATA_ERROR |
1078 | If Uncompressed size of LZMA chunk (2 MiB at maximum) == 0 Then |
1090 | Return XZ_OK |
1093 | Break |
1095 | Case Position in xz_dec_lzma2_run(). == SEQ_COPY |
1105 | Return XZ_OK |
Name | Describe |
---|---|
dec_block | Decode the Compressed Data field from a Block |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |