函数逻辑报告 |
Source Code:lib\decompress_inflate.c |
Create Date:2022-07-27 07:13:59 |
Last Modify:2020-03-15 22:47:18 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Included from initramfs et al code
函数原型:STATIC int __attribute__((__section__(".init.text"))) __attribute__((__cold__))__gunzip(unsigned char *buf, long len, long (*fill)(void *, unsigned long ), long (*flush)(void *, unsigned long ), unsigned char *out_buf, long out_len, long *pos, void (*error)(char *x))
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
unsigned char * | buf | |
long | len | |
long (* | fill | |
long (* | flush | |
unsigned char * | out_buf | |
long | out_len | |
long * | pos | |
void (* | error |
48 | rc等于负1 |
49 | 如果flush则 |
50 | out_len等于0x8000 |
52 | 否则 |
56 | 如果非out_buf则 |
57 | error("Out of memory while allocating output buffer") |
58 | 转到:gunzip_nomem1 |
63 | 否则 |
64 | zbuf等于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 (GZIP_IOBUF_SIZE) |
65 | len等于0 |
67 | 如果非zbuf则 |
68 | error("Out of memory while allocating input buffer") |
69 | 转到:gunzip_nomem2 |
72 | strm等于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 (strm的长度) |
73 | 如果(strm == NULL)则 |
74 | error("Out of memory while allocating z_stream") |
75 | 转到:gunzip_nomem3 |
80 | 如果( memory allocated for this stream == NULL)则 |
81 | error("Out of memory while allocating workspace") |
82 | 转到:gunzip_nomem4 |
88 | 如果len恒等于0则len等于fill(zbuf, GZIP_IOBUF_SIZE) |
103 | next input byte 等于zbuf加10 |
104 | number of bytes available at next_in 等于len减10 |
106 | 如果zbuf[3]按位与0x8则 |
124 | rc等于zlib_inflateInit2(strm, - 32K LZ77 window ) |
126 | 如果非flush则 |
132 | 如果 number of bytes available at next_in 恒等于0则 |
143 | rc等于late() uses a state machine to process as much input data and generate asmuch output data as possible before returning |
146 | 如果flush且 next output byte should be put there 大于out_buf则 |
158 | 如果rc恒等于Z_STREAM_END则 |
168 | 如果pos则pos等于 next input byte 减zbuf加8 |
172 | gunzip_5 : |
174 | gunzip_nomem4 : |
176 | gunzip_nomem3 : |
179 | gunzip_nomem2 : |
182 | gunzip_nomem1 : |
183 | 返回:rc |
名称 | 描述 |
---|---|
__decompress | |
gunzip |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |