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 |