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