函数逻辑报告 |
Source Code:lib\decompress_bunzip2.c |
Create Date:2022-07-27 07:14:06 |
Last Modify:2020-03-15 22:49:38 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Unpacks the next block and sets up for the inverse burrows-wheeler step.
函数原型:static int __attribute__((__section__(".init.text"))) __attribute__((__cold__))get_next_block(struct bunzip_data *bd)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct bunzip_data * | bd |
158 | struct group_data * hufGroup = NULL |
159 | int * base = NULL |
160 | int * limit = NULL |
175 | i等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
176 | j等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
178 | 如果i恒等于0x177245且j恒等于0x385090则返回:RETVAL_LAST_BLOCK |
180 | 如果i不等于0x314159或j不等于0x265359则返回:RETVAL_NOT_BZIP_DATA |
185 | 如果Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian 则返回:RETVAL_OBSOLETE_INPUT |
187 | origPtr等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
188 | 如果origPtr大于等于dbufSize则返回:RETVAL_DATA_ERROR |
195 | t等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
196 | symTotal等于0 |
206 | groupCount等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
207 | 如果groupCount小于2或groupCount大于Constants for Huffman coding 则返回:RETVAL_DATA_ERROR |
214 | nSelectors等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
215 | 如果非nSelectors则返回:RETVAL_DATA_ERROR |
219 | 以i小于nSelectors循环 |
221 | 以Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian 循环如果j大于等于groupCount则 |
223 | 返回:RETVAL_DATA_ERROR |
234 | 以j小于groupCount循环 |
246 | t等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian 减1 |
248 | 循环 |
296 | hufGroup等于Huffman coding tables 加j |
307 | pp等于0 |
358 | 循环 |
360 | 如果非symCount自减则 |
362 | 如果selector大于等于nSelectors则返回:RETVAL_DATA_ERROR |
364 | hufGroup等于Huffman coding tables 加selectors[selector++] |
380 | 当inbufBitCount小于maxLen循环 |
381 | 如果, outbufPos恒等于inbufCount则 |
382 | j等于Return the next nnn bits of input. All reads from the compressed inputare done through this function. All reads are big endian |
383 | 转到:got_huff_bits |
385 | inbufBits等于inbufBits左移8位按位或,*outbuf[, outbufPos++] |
387 | inbufBitCount加等于8 |
389 | inbufBitCount减等于maxLen |
390 | j等于inbufBits右移inbufBitCount位按位与1左移maxLen位的值减1 |
392 | got_huff_bits : |
397 | i先自加 |
398 | inbufBitCount加等于maxLen减i |
400 | 如果i大于maxLen或j等于j右移maxLen减i位的值减base[i]大于等于256 literals + RUNA + RUNB 则返回:RETVAL_DATA_ERROR |
410 | 如果nextSym小于等于SYMBOL_RUNB则 |
439 | 如果runPos则 |
440 | runPos等于0 |
441 | 如果dbufCount加t大于等于dbufSize则返回:RETVAL_DATA_ERROR |
461 | 如果dbufCount大于等于dbufSize则返回:RETVAL_DATA_ERROR |
470 | 循环 |
487 | j等于0 |
503 | 如果dbufCount则 |
504 | 如果origPtr大于等于dbufCount则返回:RETVAL_DATA_ERROR |
508 | State for interrupting output loop 右移等于8位 |
513 | 返回:Status return values |
名称 | 描述 |
---|---|
read_bunzip | Undo burrows-wheeler transform on intermediate buffer to produce output.If start_bunzip was initialized with out_fd =-1, then up to len bytes ofdata are written to outbuf. Return value is number of bytes written orerror (all errors are negative numbers) |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |