📄 bzlib_decompress.lst
字号:
243:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc != BZ_HDR_h) RETURN(BZ_DATA_ERROR_MAGIC); 244:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 245:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8) 246:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->blockSize100k < (BZ_HDR_0 + 1) || 247:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC); 248:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->blockSize100k -= BZ_HDR_0; 249:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 250:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->smallDecompress) { 251:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) ); 252:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->ll4 = BZALLOC( 253:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) 254:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** );GAS LISTING /tmp/cccqP2ln.s page 9 255:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR); 256:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } else { 257:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->tt = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) ); 258:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->tt == NULL) RETURN(BZ_MEM_ERROR); 259:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 260:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 261:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BLKHDR_1, uc); 262:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 263:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc == 0x17) goto endhdr_2; 264:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc != 0x31) RETURN(BZ_DATA_ERROR); 265:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BLKHDR_2, uc); 266:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc != 0x41) RETURN(BZ_DATA_ERROR); 267:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BLKHDR_3, uc); 268:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc != 0x59) RETURN(BZ_DATA_ERROR); 269:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BLKHDR_4, uc); 270:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc != 0x26) RETURN(BZ_DATA_ERROR); 271:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BLKHDR_5, uc); 272:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc != 0x53) RETURN(BZ_DATA_ERROR); 273:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BLKHDR_6, uc); 274:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc != 0x59) RETURN(BZ_DATA_ERROR); 275:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 276:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->currBlockNo++; 277:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->verbosity >= 2) 278:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** VPrintf1 ( "\n [%d: huff+mtf ", s->currBlockNo ); 279:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 280:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->storedBlockCRC = 0; 281:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BCRC_1, uc); 282:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); 283:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BCRC_2, uc); 284:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); 285:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BCRC_3, uc); 286:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); 287:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_BCRC_4, uc); 288:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); 289:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 290:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1); 291:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 292:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->origPtr = 0; 293:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_ORIGPTR_1, uc); 294:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->origPtr = (s->origPtr << 8) | ((Int32)uc); 295:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_ORIGPTR_2, uc); 296:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->origPtr = (s->origPtr << 8) | ((Int32)uc); 297:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_UCHAR(BZ_X_ORIGPTR_3, uc); 298:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->origPtr = (s->origPtr << 8) | ((Int32)uc); 299:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 300:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->origPtr < 0) 301:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** RETURN(BZ_DATA_ERROR); 302:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->origPtr > 10 + 100000*s->blockSize100k) 303:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** RETURN(BZ_DATA_ERROR); 304:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 305:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** /*--- Receive the mapping table ---*/ 306:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (i = 0; i < 16; i++) { 307:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BIT(BZ_X_MAPPING_1, uc); 308:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc == 1) 309:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->inUse16[i] = True; else 310:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->inUse16[i] = False; 311:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** }GAS LISTING /tmp/cccqP2ln.s page 10 312:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 313:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (i = 0; i < 256; i++) s->inUse[i] = False; 314:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 315:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (i = 0; i < 16; i++) 316:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->inUse16[i]) 317:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (j = 0; j < 16; j++) { 318:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BIT(BZ_X_MAPPING_2, uc); 319:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc == 1) s->inUse[i * 16 + j] = True; 320:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 321:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** makeMaps_d ( s ); 322:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->nInUse == 0) RETURN(BZ_DATA_ERROR); 323:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** alphaSize = s->nInUse+2; 324:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 325:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** /*--- Now the selectors ---*/ 326:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BITS(BZ_X_SELECTOR_1, nGroups, 3); 327:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR); 328:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15); 329:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (nSelectors < 1) RETURN(BZ_DATA_ERROR); 330:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (i = 0; i < nSelectors; i++) { 331:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** j = 0; 332:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** while (True) { 333:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BIT(BZ_X_SELECTOR_3, uc); 334:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc == 0) break; 335:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** j++; 336:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (j >= nGroups) RETURN(BZ_DATA_ERROR); 337:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 338:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->selectorMtf[i] = j; 339:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 340:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 341:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** /*--- Undo the MTF values for the selectors. ---*/ 342:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** { 343:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** UChar pos[BZ_N_GROUPS], tmp, v; 344:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (v = 0; v < nGroups; v++) pos[v] = v; 345:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 346:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (i = 0; i < nSelectors; i++) { 347:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** v = s->selectorMtf[i]; 348:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** tmp = pos[v]; 349:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** while (v > 0) { pos[v] = pos[v-1]; v--; } 350:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** pos[0] = tmp; 351:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->selector[i] = tmp; 352:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 353:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 354:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 355:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** /*--- Now the coding tables ---*/ 356:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (t = 0; t < nGroups; t++) { 357:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BITS(BZ_X_CODING_1, curr, 5); 358:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (i = 0; i < alphaSize; i++) { 359:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** while (True) { 360:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR); 361:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BIT(BZ_X_CODING_2, uc); 362:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc == 0) break; 363:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** GET_BIT(BZ_X_CODING_3, uc); 364:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (uc == 0) curr++; else curr--; 365:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 366:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->len[t][i] = curr; 367:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 368:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** }GAS LISTING /tmp/cccqP2ln.s page 11 369:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 370:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** /*--- Create the Huffman decoding tables ---*/ 371:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (t = 0; t < nGroups; t++) { 372:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** minLen = 32; 373:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** maxLen = 0; 374:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** for (i = 0; i < alphaSize; i++) { 375:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; 376:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** if (s->len[t][i] < minLen) minLen = s->len[t][i]; 377:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 378:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** BZ2_hbCreateDecodeTables ( 379:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** &(s->limit[t][0]), 380:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** &(s->base[t][0]), 381:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** &(s->perm[t][0]), 382:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** &(s->len[t][0]), 383:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** minLen, maxLen, alphaSize 384:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** ); 385:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** s->minLens[t] = minLen; 386:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** } 387:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** 388:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c **** /*--- Now the MTF values ---*/ 389:/mnt/hgfs/boot/booter/source/applications/booter/bzlib_decompress.c ****
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -