Function report |
Source Code:lib\decompress_unlzo.c |
Create Date:2022-07-28 06:17:34 |
| Last Modify:2020-03-15 22:52:05 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:unlzo
Proto:STATIC int __attribute__((__section__(".init.text"))) __attribute__((__cold__))unlzo(u8 *input, long in_len, long (*fill)(void *, unsigned long ), long (*flush)(void *, unsigned long ), u8 *output, long *posp, void (*error)(char *x))
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| u8 * | input | |
| long | in_len | |
| long (* | fill | |
| long (* | flush | |
| u8 * | output | |
| long * | posp | |
| void (* | error |
| 104 | r = 0 |
| 105 | skip = 0 |
| 109 | ret = -1 |
| 111 | If output Then |
| 113 | Else if Not flush Then |
| 116 | Else |
| 117 | out_buf = Use defines rather than static inline in order to avoid spurious* warnings when not needed (indeed large_malloc / large_free are not* needed by inflate (LZO_BLOCK_SIZE) |
| 118 | If Not out_buf Then |
| 127 | Else if input Then |
| 129 | Else if Not fill Then |
| 132 | Else |
| 134 | If Not in_buf Then |
| 139 | in_buf_save = in_buf |
| 144 | If fill Then |
| 151 | in_buf += HEADER_SIZE_MAX |
| 152 | in_len = fill(in_buf, HEADER_SIZE_MAX) |
| 155 | If Not parse_header(in_buf, & skip, in_len) Then |
| 162 | If fill Then |
| 164 | No 3D Now!(in_buf_save, in_buf, in_len) |
| 165 | in_buf = in_buf_save |
| 171 | cycle |
| 178 | If in_len < 4 Then |
| 182 | dst_len = get_unaligned_be32(in_buf) |
| 183 | in_buf += 4 |
| 184 | in_len -= 4 |
| 187 | If dst_len == 0 Then |
| 193 | If dst_len > LZO_BLOCK_SIZE Then |
| 204 | If in_len < 8 Then |
| 208 | src_len = get_unaligned_be32(in_buf) |
| 209 | in_buf += 8 |
| 210 | in_len -= 8 |
| 232 | If Value for the false possibility is greater at compile time(dst_len == src_len) Then No 3D Now!(out_buf, in_buf, src_len) |
| 234 | Else |
| 238 | If r != Return values (< 0 = Error) || dst_len != tmp Then |
| 253 | If fill Then |
| 261 | in_buf_save[skip] = in_buf[skip] |
| 262 | in_buf = in_buf_save |
| 266 | ret = 0 |
| 267 | exit_2 : |
| 268 | If Not input Then free(in_buf_save) |
| 270 | exit_1 : |
| 273 | exit : |
| 274 | Return ret |
| Name | Describe |
|---|---|
| __decompress |
| 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 |