函数逻辑报告 |
Source Code:lib\decompress_unlzo.c |
Create Date:2022-07-27 07:14:56 |
| Last Modify:2020-03-15 22:52:05 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:unlzo
函数原型: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))
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| 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 | 如果output则 |
| 113 | 否则如果非flush则 |
| 116 | 否则 |
| 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 | 如果非out_buf则 |
| 127 | 否则如果input则 |
| 129 | 否则如果非fill则 |
| 132 | 否则 |
| 134 | 如果非in_buf则 |
| 139 | in_buf_save等于in_buf |
| 144 | 如果fill则 |
| 151 | in_buf加等于HEADER_SIZE_MAX |
| 152 | in_len等于fill(in_buf, HEADER_SIZE_MAX) |
| 155 | 如果非parse_header(in_buf, & skip, in_len)则 |
| 162 | 如果fill则 |
| 164 | 内存复制(in_buf_save, in_buf, in_len) |
| 165 | in_buf等于in_buf_save |
| 171 | 循环 |
| 178 | 如果in_len小于4则 |
| 182 | dst_len等于get_unaligned_be32(in_buf) |
| 183 | in_buf加等于4 |
| 184 | in_len减等于4 |
| 187 | 如果dst_len恒等于0则 |
| 193 | 如果dst_len大于LZO_BLOCK_SIZE则 |
| 204 | 如果in_len小于8则 |
| 208 | src_len等于get_unaligned_be32(in_buf) |
| 209 | in_buf加等于8 |
| 210 | in_len减等于8 |
| 234 | 否则 |
| 238 | 如果r不等于Return values (< 0 = Error)或dst_len不等于tmp则 |
| 253 | 如果fill则 |
| 266 | ret等于0 |
| 267 | exit_2 : |
| 268 | 如果非input则free(in_buf_save) |
| 270 | exit_1 : |
| 273 | exit : |
| 274 | 返回:ret |
| 名称 | 描述 |
|---|---|
| __decompress |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |