Extensible Firmware Interface Specification
I-12 12/01/02 Version 1.10
n = GetBits(Sd, CBIT);
if (n == 0) {
c = GetBits(Sd, CBIT);
for (i = 0; i < NC; i ++) {
Sd->mCLen[i] = 0;
}
for (i = 0; i < 4096; i ++) {
Sd->mCTable[i] = c;
}
return;
}
i = 0;
while (i < n) {
c = Sd->mPTTable[Sd->mBitBuf >> (BITBUFSIZ - 8)];
if (c >= NT) {
Mask = 1U << (BITBUFSIZ - 1 - 8);
do {
if (Mask & Sd->mBitBuf) {
c = Sd->mRight [c];
} else {
c = Sd->mLeft [c];
}
Mask >>= 1;
}while (c >= NT);
}
//
// Advance what we have read
//
FillBuf (Sd, Sd->mPTLen[c]);
if (c <= 2) {
if (c == 0) {
c = 1;
} else if (c == 1) {
c = (UINT16)(GetBits (Sd, 4) + 3);
} else if (c == 2) {
c = (UINT16)(GetBits (Sd, CBIT) + 20);
}
while ((INT16)(--c) >= 0) {
Sd->mCLen[i++] = 0;
}
} else {