IA32_DESCRIPTOR IdtDescriptor;\r
UINTN IdtEntryCount;\r
EXCEPTION_HANDLER_TEMPLATE_MAP TemplateMap;\r
- UINTN Index;\r
- UINTN InterruptEntry;\r
- UINT8 *InterruptEntryCode;\r
RESERVED_VECTORS_DATA *ReservedVectors;\r
EFI_CPU_INTERRUPT_HANDLER *ExternalInterruptHandler;\r
\r
AsmGetTemplateAddressMap (&TemplateMap);\r
ASSERT (TemplateMap.ExceptionStubHeaderSize <= HOOKAFTER_STUB_SIZE);\r
\r
- Status = gBS->AllocatePool (\r
- EfiBootServicesCode,\r
- TemplateMap.ExceptionStubHeaderSize * CPU_INTERRUPT_NUM,\r
- (VOID **)&InterruptEntryCode\r
- );\r
- ASSERT (!EFI_ERROR (Status) && InterruptEntryCode != NULL);\r
-\r
- InterruptEntry = (UINTN)InterruptEntryCode;\r
- for (Index = 0; Index < CPU_INTERRUPT_NUM; Index++) {\r
- CopyMem (\r
- (VOID *)InterruptEntry,\r
- (VOID *)TemplateMap.ExceptionStart,\r
- TemplateMap.ExceptionStubHeaderSize\r
- );\r
- AsmVectorNumFixup ((VOID *)InterruptEntry, (UINT8)Index, (VOID *)TemplateMap.ExceptionStart);\r
- InterruptEntry += TemplateMap.ExceptionStubHeaderSize;\r
- }\r
-\r
- TemplateMap.ExceptionStart = (UINTN)InterruptEntryCode;\r
mExceptionHandlerData.IdtEntryCount = CPU_INTERRUPT_NUM;\r
mExceptionHandlerData.ReservedVectors = ReservedVectors;\r
mExceptionHandlerData.ExternalInterruptHandler = ExternalInterruptHandler;\r