diff options
| author | wdenk <wdenk> | 2003-10-15 23:53:47 +0000 | 
|---|---|---|
| committer | wdenk <wdenk> | 2003-10-15 23:53:47 +0000 | 
| commit | 42d1f0394bef0624fc9664714d54bb137931d6a6 (patch) | |
| tree | 892a4130507484d25faf9a72e019cf88cfb3e3d9 /lib_generic/bzlib_decompress.c | |
| parent | 2d5b561e2bfdee8552a99b2cf93016cce2a74895 (diff) | |
| download | olio-uboot-2014.01-42d1f0394bef0624fc9664714d54bb137931d6a6.tar.xz olio-uboot-2014.01-42d1f0394bef0624fc9664714d54bb137931d6a6.zip | |
* Patches by Xianghua Xiao, 15 Oct 2003:LABEL_2003_10_16_0200
  - Added Motorola CPU 8540/8560 support (cpu/85xx)
  - Added Motorola MPC8540ADS board support (board/mpc8540ads)
  - Added Motorola MPC8560ADS board support (board/mpc8560ads)
* Minor code cleanup
Diffstat (limited to 'lib_generic/bzlib_decompress.c')
| -rw-r--r-- | lib_generic/bzlib_decompress.c | 441 | 
1 files changed, 220 insertions, 221 deletions
| diff --git a/lib_generic/bzlib_decompress.c b/lib_generic/bzlib_decompress.c index 70387cdb9..a4a16879e 100644 --- a/lib_generic/bzlib_decompress.c +++ b/lib_generic/bzlib_decompress.c @@ -72,8 +72,8 @@ void makeMaps_d ( DState* s )     s->nInUse = 0;     for (i = 0; i < 256; i++)        if (s->inUse[i]) { -         s->seqToUnseq[s->nInUse] = i; -         s->nInUse++; +	 s->seqToUnseq[s->nInUse] = i; +	 s->nInUse++;        }  } @@ -86,24 +86,24 @@ void makeMaps_d ( DState* s )     case lll: s->state = lll;                      \     while (True) {                                 \        if (s->bsLive >= nnn) {                     \ -         UInt32 v;                                \ -         v = (s->bsBuff >>                        \ -             (s->bsLive-nnn)) & ((1 << nnn)-1);   \ -         s->bsLive -= nnn;                        \ -         vvv = v;                                 \ -         break;                                   \ +	 UInt32 v;                                \ +	 v = (s->bsBuff >>                        \ +	     (s->bsLive-nnn)) & ((1 << nnn)-1);   \ +	 s->bsLive -= nnn;                        \ +	 vvv = v;                                 \ +	 break;                                   \        }                                           \        if (s->strm->avail_in == 0) RETURN(BZ_OK);  \        s->bsBuff                                   \ -         = (s->bsBuff << 8) |                     \ -           ((UInt32)                              \ -              (*((UChar*)(s->strm->next_in))));   \ +	 = (s->bsBuff << 8) |                     \ +	   ((UInt32)                              \ +	      (*((UChar*)(s->strm->next_in))));   \        s->bsLive += 8;                             \        s->strm->next_in++;                         \        s->strm->avail_in--;                        \        s->strm->total_in_lo32++;                   \        if (s->strm->total_in_lo32 == 0)            \ -         s->strm->total_in_hi32++;                \ +	 s->strm->total_in_hi32++;                \     }  #define GET_UCHAR(lll,uuu)                        \ @@ -118,7 +118,7 @@ void makeMaps_d ( DState* s )     if (groupPos == 0) {                           \        groupNo++;                                  \        if (groupNo >= nSelectors)                  \ -         RETURN(BZ_DATA_ERROR);                   \ +	 RETURN(BZ_DATA_ERROR);                   \        groupPos = BZ_G_SIZE;                       \        gSel = s->selector[groupNo];                \        gMinlen = s->minLens[gSel];                 \ @@ -131,7 +131,7 @@ void makeMaps_d ( DState* s )     GET_BITS(label1, zvec, zn);                    \     while (1) {                                    \        if (zn > 20 /* the longest code */)         \ -         RETURN(BZ_DATA_ERROR);                   \ +	 RETURN(BZ_DATA_ERROR);                   \        if (zvec <= gLimit[zn]) break;              \        zn++;                                       \        GET_BIT(label2, zj);                        \ @@ -247,18 +247,18 @@ Int32 BZ2_decompress ( DState* s )        GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8)        if (s->blockSize100k < (BZ_HDR_0 + 1) || -          s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC); +	  s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC);        s->blockSize100k -= BZ_HDR_0;        if (s->smallDecompress) { -         s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) ); -         s->ll4  = BZALLOC( -                      ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) -                   ); -         if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR); +	 s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) ); +	 s->ll4  = BZALLOC( +		      ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) +		   ); +	 if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);        } else { -         s->tt  = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) ); -         if (s->tt == NULL) RETURN(BZ_MEM_ERROR); +	 s->tt  = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) ); +	 if (s->tt == NULL) RETURN(BZ_MEM_ERROR);        }        GET_UCHAR(BZ_X_BLKHDR_1, uc); @@ -278,7 +278,7 @@ Int32 BZ2_decompress ( DState* s )        s->currBlockNo++;        if (s->verbosity >= 2) -         VPrintf1 ( "\n    [%d: huff+mtf ", s->currBlockNo ); +	 VPrintf1 ( "\n    [%d: huff+mtf ", s->currBlockNo );        s->storedBlockCRC = 0;        GET_UCHAR(BZ_X_BCRC_1, uc); @@ -301,26 +301,26 @@ Int32 BZ2_decompress ( DState* s )        s->origPtr = (s->origPtr << 8) | ((Int32)uc);        if (s->origPtr < 0) -         RETURN(BZ_DATA_ERROR); +	 RETURN(BZ_DATA_ERROR);        if (s->origPtr > 10 + 100000*s->blockSize100k) -         RETURN(BZ_DATA_ERROR); +	 RETURN(BZ_DATA_ERROR);        /*--- Receive the mapping table ---*/        for (i = 0; i < 16; i++) { -         GET_BIT(BZ_X_MAPPING_1, uc); -         if (uc == 1) -            s->inUse16[i] = True; else -            s->inUse16[i] = False; +	 GET_BIT(BZ_X_MAPPING_1, uc); +	 if (uc == 1) +	    s->inUse16[i] = True; else +	    s->inUse16[i] = False;        }        for (i = 0; i < 256; i++) s->inUse[i] = False;        for (i = 0; i < 16; i++) -         if (s->inUse16[i]) -            for (j = 0; j < 16; j++) { -               GET_BIT(BZ_X_MAPPING_2, uc); -               if (uc == 1) s->inUse[i * 16 + j] = True; -            } +	 if (s->inUse16[i]) +	    for (j = 0; j < 16; j++) { +	       GET_BIT(BZ_X_MAPPING_2, uc); +	       if (uc == 1) s->inUse[i * 16 + j] = True; +	    }        makeMaps_d ( s );        if (s->nInUse == 0) RETURN(BZ_DATA_ERROR);        alphaSize = s->nInUse+2; @@ -331,61 +331,61 @@ Int32 BZ2_decompress ( DState* s )        GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15);        if (nSelectors < 1) RETURN(BZ_DATA_ERROR);        for (i = 0; i < nSelectors; i++) { -         j = 0; -         while (True) { -            GET_BIT(BZ_X_SELECTOR_3, uc); -            if (uc == 0) break; -            j++; -            if (j >= nGroups) RETURN(BZ_DATA_ERROR); -         } -         s->selectorMtf[i] = j; +	 j = 0; +	 while (True) { +	    GET_BIT(BZ_X_SELECTOR_3, uc); +	    if (uc == 0) break; +	    j++; +	    if (j >= nGroups) RETURN(BZ_DATA_ERROR); +	 } +	 s->selectorMtf[i] = j;        }        /*--- Undo the MTF values for the selectors. ---*/        { -         UChar pos[BZ_N_GROUPS], tmp, v; -         for (v = 0; v < nGroups; v++) pos[v] = v; +	 UChar pos[BZ_N_GROUPS], tmp, v; +	 for (v = 0; v < nGroups; v++) pos[v] = v; -         for (i = 0; i < nSelectors; i++) { -            v = s->selectorMtf[i]; -            tmp = pos[v]; -            while (v > 0) { pos[v] = pos[v-1]; v--; } -            pos[0] = tmp; -            s->selector[i] = tmp; -         } +	 for (i = 0; i < nSelectors; i++) { +	    v = s->selectorMtf[i]; +	    tmp = pos[v]; +	    while (v > 0) { pos[v] = pos[v-1]; v--; } +	    pos[0] = tmp; +	    s->selector[i] = tmp; +	 }        }        /*--- Now the coding tables ---*/        for (t = 0; t < nGroups; t++) { -         GET_BITS(BZ_X_CODING_1, curr, 5); -         for (i = 0; i < alphaSize; i++) { -            while (True) { -               if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR); -               GET_BIT(BZ_X_CODING_2, uc); -               if (uc == 0) break; -               GET_BIT(BZ_X_CODING_3, uc); -               if (uc == 0) curr++; else curr--; -            } -            s->len[t][i] = curr; -         } +	 GET_BITS(BZ_X_CODING_1, curr, 5); +	 for (i = 0; i < alphaSize; i++) { +	    while (True) { +	       if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR); +	       GET_BIT(BZ_X_CODING_2, uc); +	       if (uc == 0) break; +	       GET_BIT(BZ_X_CODING_3, uc); +	       if (uc == 0) curr++; else curr--; +	    } +	    s->len[t][i] = curr; +	 }        }        /*--- Create the Huffman decoding tables ---*/        for (t = 0; t < nGroups; t++) { -         minLen = 32; -         maxLen = 0; -         for (i = 0; i < alphaSize; i++) { -            if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; -            if (s->len[t][i] < minLen) minLen = s->len[t][i]; -         } -         BZ2_hbCreateDecodeTables ( -            &(s->limit[t][0]), -            &(s->base[t][0]), -            &(s->perm[t][0]), -            &(s->len[t][0]), -            minLen, maxLen, alphaSize -         ); -         s->minLens[t] = minLen; +	 minLen = 32; +	 maxLen = 0; +	 for (i = 0; i < alphaSize; i++) { +	    if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; +	    if (s->len[t][i] < minLen) minLen = s->len[t][i]; +	 } +	 BZ2_hbCreateDecodeTables ( +	    &(s->limit[t][0]), +	    &(s->base[t][0]), +	    &(s->perm[t][0]), +	    &(s->len[t][0]), +	    minLen, maxLen, alphaSize +	 ); +	 s->minLens[t] = minLen;        }        /*--- Now the MTF values ---*/ @@ -399,15 +399,15 @@ Int32 BZ2_decompress ( DState* s )        /*-- MTF init --*/        { -         Int32 ii, jj, kk; -         kk = MTFA_SIZE-1; -         for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) { -            for (jj = MTFL_SIZE-1; jj >= 0; jj--) { -               s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj); -               kk--; -            } -            s->mtfbase[ii] = kk + 1; -         } +	 Int32 ii, jj, kk; +	 kk = MTFA_SIZE-1; +	 for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) { +	    for (jj = MTFL_SIZE-1; jj >= 0; jj--) { +	       s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj); +	       kk--; +	    } +	    s->mtfbase[ii] = kk + 1; +	 }        }        /*-- end MTF init --*/ @@ -416,115 +416,115 @@ Int32 BZ2_decompress ( DState* s )        while (True) { -         if (nextSym == EOB) break; +	 if (nextSym == EOB) break; -         if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) { +	 if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) { -            es = -1; -            N = 1; -            do { -               if (nextSym == BZ_RUNA) es = es + (0+1) * N; else -               if (nextSym == BZ_RUNB) es = es + (1+1) * N; -               N = N * 2; -               GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym); -            } -               while (nextSym == BZ_RUNA || nextSym == BZ_RUNB); +	    es = -1; +	    N = 1; +	    do { +	       if (nextSym == BZ_RUNA) es = es + (0+1) * N; else +	       if (nextSym == BZ_RUNB) es = es + (1+1) * N; +	       N = N * 2; +	       GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym); +	    } +	       while (nextSym == BZ_RUNA || nextSym == BZ_RUNB); -            es++; -            uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ]; -            s->unzftab[uc] += es; +	    es++; +	    uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ]; +	    s->unzftab[uc] += es; -            if (s->smallDecompress) -               while (es > 0) { -                  if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); -                  s->ll16[nblock] = (UInt16)uc; -                  nblock++; -                  es--; -               } -            else -               while (es > 0) { -                  if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); -                  s->tt[nblock] = (UInt32)uc; -                  nblock++; -                  es--; -               }; +	    if (s->smallDecompress) +	       while (es > 0) { +		  if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); +		  s->ll16[nblock] = (UInt16)uc; +		  nblock++; +		  es--; +	       } +	    else +	       while (es > 0) { +		  if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); +		  s->tt[nblock] = (UInt32)uc; +		  nblock++; +		  es--; +	       }; -            continue; +	    continue; -         } else { +	 } else { -            if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); +	    if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); -            /*-- uc = MTF ( nextSym-1 ) --*/ -            { -               Int32 ii, jj, kk, pp, lno, off; -               UInt32 nn; -               nn = (UInt32)(nextSym - 1); +	    /*-- uc = MTF ( nextSym-1 ) --*/ +	    { +	       Int32 ii, jj, kk, pp, lno, off; +	       UInt32 nn; +	       nn = (UInt32)(nextSym - 1); -               if (nn < MTFL_SIZE) { -                  /* avoid general-case expense */ -                  pp = s->mtfbase[0]; -                  uc = s->mtfa[pp+nn]; -                  while (nn > 3) { -                     Int32 z = pp+nn; -                     s->mtfa[(z)  ] = s->mtfa[(z)-1]; -                     s->mtfa[(z)-1] = s->mtfa[(z)-2]; -                     s->mtfa[(z)-2] = s->mtfa[(z)-3]; -                     s->mtfa[(z)-3] = s->mtfa[(z)-4]; -                     nn -= 4; -                  } -                  while (nn > 0) { -                     s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; -                  }; -                  s->mtfa[pp] = uc; -               } else { -                  /* general case */ -                  lno = nn / MTFL_SIZE; -                  off = nn % MTFL_SIZE; -                  pp = s->mtfbase[lno] + off; -                  uc = s->mtfa[pp]; -                  while (pp > s->mtfbase[lno]) { -                     s->mtfa[pp] = s->mtfa[pp-1]; pp--; -                  }; -                  s->mtfbase[lno]++; -                  while (lno > 0) { -                     s->mtfbase[lno]--; -                     s->mtfa[s->mtfbase[lno]] -                        = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1]; -                     lno--; -                  } -                  s->mtfbase[0]--; -                  s->mtfa[s->mtfbase[0]] = uc; -                  if (s->mtfbase[0] == 0) { -                     kk = MTFA_SIZE-1; -                     for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) { -                        for (jj = MTFL_SIZE-1; jj >= 0; jj--) { -                           s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj]; -                           kk--; -                        } -                        s->mtfbase[ii] = kk + 1; -                     } -                  } -               } -            } -            /*-- end uc = MTF ( nextSym-1 ) --*/ +	       if (nn < MTFL_SIZE) { +		  /* avoid general-case expense */ +		  pp = s->mtfbase[0]; +		  uc = s->mtfa[pp+nn]; +		  while (nn > 3) { +		     Int32 z = pp+nn; +		     s->mtfa[(z)  ] = s->mtfa[(z)-1]; +		     s->mtfa[(z)-1] = s->mtfa[(z)-2]; +		     s->mtfa[(z)-2] = s->mtfa[(z)-3]; +		     s->mtfa[(z)-3] = s->mtfa[(z)-4]; +		     nn -= 4; +		  } +		  while (nn > 0) { +		     s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; +		  }; +		  s->mtfa[pp] = uc; +	       } else { +		  /* general case */ +		  lno = nn / MTFL_SIZE; +		  off = nn % MTFL_SIZE; +		  pp = s->mtfbase[lno] + off; +		  uc = s->mtfa[pp]; +		  while (pp > s->mtfbase[lno]) { +		     s->mtfa[pp] = s->mtfa[pp-1]; pp--; +		  }; +		  s->mtfbase[lno]++; +		  while (lno > 0) { +		     s->mtfbase[lno]--; +		     s->mtfa[s->mtfbase[lno]] +			= s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1]; +		     lno--; +		  } +		  s->mtfbase[0]--; +		  s->mtfa[s->mtfbase[0]] = uc; +		  if (s->mtfbase[0] == 0) { +		     kk = MTFA_SIZE-1; +		     for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) { +			for (jj = MTFL_SIZE-1; jj >= 0; jj--) { +			   s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj]; +			   kk--; +			} +			s->mtfbase[ii] = kk + 1; +		     } +		  } +	       } +	    } +	    /*-- end uc = MTF ( nextSym-1 ) --*/ -            s->unzftab[s->seqToUnseq[uc]]++; -            if (s->smallDecompress) -               s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else -               s->tt[nblock]   = (UInt32)(s->seqToUnseq[uc]); -            nblock++; +	    s->unzftab[s->seqToUnseq[uc]]++; +	    if (s->smallDecompress) +	       s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else +	       s->tt[nblock]   = (UInt32)(s->seqToUnseq[uc]); +	    nblock++; -            GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym); -            continue; -         } +	    GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym); +	    continue; +	 }        }        /* Now we know what nblock is, we can do a better sanity -         check on s->origPtr. +	 check on s->origPtr.        */        if (s->origPtr < 0 || s->origPtr >= nblock) -         RETURN(BZ_DATA_ERROR); +	 RETURN(BZ_DATA_ERROR);        s->state_out_len = 0;        s->state_out_ch  = 0; @@ -539,62 +539,61 @@ Int32 BZ2_decompress ( DState* s )        if (s->smallDecompress) { -         /*-- Make a copy of cftab, used in generation of T --*/ -         for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i]; +	 /*-- Make a copy of cftab, used in generation of T --*/ +	 for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i]; -         /*-- compute the T vector --*/ -         for (i = 0; i < nblock; i++) { -            uc = (UChar)(s->ll16[i]); -            SET_LL(i, s->cftabCopy[uc]); -            s->cftabCopy[uc]++; -         } +	 /*-- compute the T vector --*/ +	 for (i = 0; i < nblock; i++) { +	    uc = (UChar)(s->ll16[i]); +	    SET_LL(i, s->cftabCopy[uc]); +	    s->cftabCopy[uc]++; +	 } -         /*-- Compute T^(-1) by pointer reversal on T --*/ -         i = s->origPtr; -         j = GET_LL(i); -         do { -            Int32 tmp = GET_LL(j); -            SET_LL(j, i); -            i = j; -            j = tmp; -         } -            while (i != s->origPtr); +	 /*-- Compute T^(-1) by pointer reversal on T --*/ +	 i = s->origPtr; +	 j = GET_LL(i); +	 do { +	    Int32 tmp = GET_LL(j); +	    SET_LL(j, i); +	    i = j; +	    j = tmp; +	 } +	    while (i != s->origPtr); -         s->tPos = s->origPtr; -         s->nblock_used = 0; -         if (s->blockRandomised) { -            BZ_RAND_INIT_MASK; -            BZ_GET_SMALL(s->k0); s->nblock_used++; -            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; -         } else { -            BZ_GET_SMALL(s->k0); s->nblock_used++; -         } +	 s->tPos = s->origPtr; +	 s->nblock_used = 0; +	 if (s->blockRandomised) { +	    BZ_RAND_INIT_MASK; +	    BZ_GET_SMALL(s->k0); s->nblock_used++; +	    BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; +	 } else { +	    BZ_GET_SMALL(s->k0); s->nblock_used++; +	 }        } else { -         /*-- compute the T^(-1) vector --*/ -         for (i = 0; i < nblock; i++) { -            uc = (UChar)(s->tt[i] & 0xff); -            s->tt[s->cftab[uc]] |= (i << 8); -            s->cftab[uc]++; -         } +	 /*-- compute the T^(-1) vector --*/ +	 for (i = 0; i < nblock; i++) { +	    uc = (UChar)(s->tt[i] & 0xff); +	    s->tt[s->cftab[uc]] |= (i << 8); +	    s->cftab[uc]++; +	 } -         s->tPos = s->tt[s->origPtr] >> 8; -         s->nblock_used = 0; -         if (s->blockRandomised) { -            BZ_RAND_INIT_MASK; -            BZ_GET_FAST(s->k0); s->nblock_used++; -            BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; -         } else { -            BZ_GET_FAST(s->k0); s->nblock_used++; -         } +	 s->tPos = s->tt[s->origPtr] >> 8; +	 s->nblock_used = 0; +	 if (s->blockRandomised) { +	    BZ_RAND_INIT_MASK; +	    BZ_GET_FAST(s->k0); s->nblock_used++; +	    BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; +	 } else { +	    BZ_GET_FAST(s->k0); s->nblock_used++; +	 }        }        RETURN(BZ_OK); -      endhdr_2:        GET_UCHAR(BZ_X_ENDHDR_2, uc); |