// The base address of legacy interrupt vector table is 0.\r
// We use this base address to get the legacy interrupt handler.\r
//\r
- DisableNullDetection ();\r
- Segment = (UINT16)(((UINT32 *)0)[BiosInt] >> 16);\r
- Offset = (UINT16)((UINT32 *)0)[BiosInt];\r
- EnableNullDetection ();\r
+ ACCESS_PAGE0_CODE (\r
+ Segment = (UINT16)(((UINT32 *)0)[BiosInt] >> 16);\r
+ Offset = (UINT16)((UINT32 *)0)[BiosInt];\r
+ );\r
\r
return InternalLegacyBiosFarCall (\r
This,\r
\r
AsmThunk16 (&mThunkContext);\r
\r
- //\r
- // OPROM may allocate EBDA range by itself and change EBDA base and EBDA size.\r
- // Get the current EBDA base address, and compared with pre-allocate minimum\r
- // EBDA base address, if the current EBDA base address is smaller, it indicates\r
- // PcdEbdaReservedMemorySize should be adjusted to larger for more OPROMs.\r
- //\r
- DEBUG_CODE (\r
- {\r
- UINTN EbdaBaseAddress;\r
- UINTN ReservedEbdaBaseAddress;\r
-\r
- //\r
- // Skip this part of debug code if NULL pointer detection is enabled\r
- //\r
- if ((PcdGet8 (PcdNullPointerDetectionPropertyMask) & BIT0) == 0) {\r
- EbdaBaseAddress = (*(UINT16 *) (UINTN) 0x40E) << 4;\r
- ReservedEbdaBaseAddress = CONVENTIONAL_MEMORY_TOP\r
- - PcdGet32 (PcdEbdaReservedMemorySize);\r
- ASSERT (ReservedEbdaBaseAddress <= EbdaBaseAddress);\r
- }\r
- }\r
- );\r
-\r
if (Stack != NULL && StackSize != 0) {\r
//\r
// Copy low memory stack to Stack\r
//\r
gBS->RestoreTPL (OriginalTpl);\r
\r
+ //\r
+ // OPROM may allocate EBDA range by itself and change EBDA base and EBDA size.\r
+ // Get the current EBDA base address, and compared with pre-allocate minimum\r
+ // EBDA base address, if the current EBDA base address is smaller, it indicates\r
+ // PcdEbdaReservedMemorySize should be adjusted to larger for more OPROMs.\r
+ //\r
+ DEBUG_CODE (\r
+ {\r
+ UINTN EbdaBaseAddress;\r
+ UINTN ReservedEbdaBaseAddress;\r
+\r
+ ACCESS_PAGE0_CODE (\r
+ EbdaBaseAddress = (*(UINT16 *) (UINTN) 0x40E) << 4;\r
+ ReservedEbdaBaseAddress = CONVENTIONAL_MEMORY_TOP\r
+ - PcdGet32 (PcdEbdaReservedMemorySize);\r
+ ASSERT (ReservedEbdaBaseAddress <= EbdaBaseAddress);\r
+ );\r
+ }\r
+ );\r
+\r
//\r
// Restore interrupt of debug timer\r
//\r