Intel Extensible Firmware Interface User Manual

Page 1001

Advertising
background image

Decompression Source Code

Version 1.10

12/01/02

I-9

k <<= 1;
i --;
}

*p = Char;

}

Start[Len] = NextCode;
}

//
// Succeeds
//
return 0;
}


STATIC
UINT16
DecodeP (
IN SCRATCH_DATA *Sd
)
/*++

Routine description:

Decodes a position value.

Arguments:

Sd - the global scratch data

Returns:

The position value decoded.

--*/
{
UINT16 Val;
UINT16 Mask;

Val = Sd->mPTTable[Sd->mBitBuf >> (BITBUFSIZ - 8)];

if (Val >= NP) {
Mask = 1U << (BITBUFSIZ - 1 - 8);

do {

if (Sd->mBitBuf & Mask) {
Val = Sd->mRight[Val];
} else {
Val = Sd->mLeft[Val];
}

Mask >>= 1;
} while (Val >= NP);
}

Advertising