Intel Extensible Firmware Interface User Manual

Page 1005

Advertising
background image

Decompression Source Code

Version 1.10

12/01/02

I-13

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

}
}

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

MakeTable (Sd, NC, Sd->mCLen, 12, Sd->mCTable);

return;
}


STATIC
UINT16
DecodeC (
SCRATCH_DATA *Sd
)
/*++

Routine Description:

Decode a character/length value.

Arguments:

Sd - The global scratch data.

Returns:

The value decoded.

--*/
{
UINT16 j;
UINT16 Mask;

if (Sd->mBlockSize == 0) {

//
// Starting a new block
//

Sd->mBlockSize = GetBits(Sd, 16);
Sd->mBadTableFlag = ReadPTLen (Sd, NT, TBIT, 3);
if (Sd->mBadTableFlag != 0) {
return 0;
}

ReadCLen (Sd);

Sd->mBadTableFlag = ReadPTLen (Sd, NP, PBIT, (UINT16)(-1));
if (Sd->mBadTableFlag != 0) {
return 0;
}
}

Advertising