Intel Extensible Firmware Interface User Manual

Page 1003

Advertising
background image

Decompression Source Code

Version 1.10

12/01/02

I-11

return 0;
}

i = 0;

while (i < n) {

c = (UINT16)(Sd->mBitBuf >> (BITBUFSIZ - 3));

if (c == 7) {
Mask = 1U << (BITBUFSIZ - 1 - 3);
while (Mask & Sd->mBitBuf) {
Mask >>= 1;
c += 1;
}
}

FillBuf (Sd, (UINT16)((c < 7) ? 3 : c - 3));

Sd->mPTLen [i++] = (UINT8)c;

if (i == Special) {
c = GetBits (Sd, 2);
while ((INT16)(--c) >= 0) {
Sd->mPTLen[i++] = 0;
}
}
}

while (i < nn) {
Sd->mPTLen [i++] = 0;
}

return ( MakeTable (Sd, nn, Sd->mPTLen, 8, Sd->mPTTable) );
}


STATIC
VOID
ReadCLen (
SCRATCH_DATA *Sd
)
/*++

Routine Description:

Reads code lengths for Char&Len Set.

Arguments:

Sd - the global scratch data

Returns: (VOID)

--*/
{
UINT16 n;
UINT16 c;
UINT16 i;
UINT16 Mask;

Advertising