}\r
}\r
\r
-//\r
-// Return the highest set bit\r
-//\r
-\r
-/**\r
- Return the highest set bit.\r
-\r
- @param Number The value to check\r
-\r
- @return Bit position of the highest set bit\r
-\r
-**/\r
-UINTN\r
-CoreHighestSetBit (\r
- IN UINTN Number\r
- )\r
-{\r
- UINTN Msb;\r
-\r
- Msb = 31;\r
- while ((Msb > 0) && ((Number & (UINTN)(1 << Msb)) == 0)) {\r
- Msb--;\r
- }\r
-\r
- return Msb;\r
-}\r
-\r
-\r
-\r
\r
/**\r
Raise the task priority level to the new level.\r
//\r
// Dispatch any pending events\r
//\r
-\r
- while ((-2 << NewTpl) & gEventPending) {\r
- gEfiCurrentTpl = CoreHighestSetBit (gEventPending);\r
+ while (((-2 << NewTpl) & gEventPending) != 0) {\r
+ gEfiCurrentTpl = HighBitSet64 (gEventPending);\r
if (gEfiCurrentTpl < TPL_HIGH_LEVEL) {\r
CoreSetInterruptState (TRUE);\r
}\r