函数逻辑报告 |
Source Code:lib\decompress_unxz.c |
Create Date:2022-07-27 07:14:48 |
Last Modify:2020-03-15 22:53:09 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:This function implements the API defined in <linux/decompress/generic.h>.* This wrapper will automatically choose single-call or multi-call mode* of the native XZ decoder API. The single-call mode can be used only when
函数原型:STATIC int __attribute__((__section__(".init.text"))) __attribute__((__cold__))unxz(unsigned char *in, long in_size, long (*fill)(void *dest, unsigned long size), long (*flush)(void *src, unsigned long size), unsigned char *out, long *in_used, void (*error)(char *x))
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
unsigned char * | in | |
long | in_size | |
long (* | fill | |
long (* | flush | |
unsigned char * | out | |
long * | in_used | |
void (* | error |
260 | bool must_free_in = false |
263 | xz_crc32_init() |
271 | 否则s等于xz_dec_init(XZ_DYNALLOC, (uint32_t) - 1) |
274 | 如果(s == NULL)则转到:error_alloc_state |
277 | 如果(flush == NULL)则 |
280 | 否则 |
283 | 如果(out == NULL)则转到:error_alloc_out |
287 | 如果(in == NULL)则 |
288 | must_free_in = true |
290 | 如果(in == NULL)则转到:error_alloc_in |
295 | in_pos等于0 |
297 | out_pos等于0 |
301 | 否则 |
302 | 循环 |
339 | 如果must_free_in则free(in) |
349 | 释放解码器分配的内存 |
352 | 当:ret恒等于XZ_STREAM_END |
353 | 返回:0 |
355 | 当:ret恒等于XZ_MEM_ERROR |
360 | 当:ret恒等于XZ_FORMAT_ERROR |
364 | 当:ret恒等于XZ_OPTIONS_ERROR |
369 | 当:ret恒等于XZ_DATA_ERROR |
370 | 当:ret恒等于XZ_BUF_ERROR |
374 | 默认 |
379 | 返回:负1 |
381 | error_alloc_in : |
385 | error_alloc_out : |
386 | 释放解码器分配的内存 |
388 | error_alloc_state : |
389 | error("XZ decompressor ran out of memory") |
390 | 返回:负1 |
名称 | 描述 |
---|---|
__decompress | This macro is used by architecture-specific files to decompress* the kernel image. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |