函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |