30 switch (ExceptionType) {
43 if (!EFI_ERROR (Status)) {
61 if (!EFI_ERROR (Status)) {
112 IA32_DESCRIPTOR IdtDescriptor;
116 IA32_IDT_GATE_DESCRIPTOR *IdtTable;
118 UINTN InterruptHandler;
120 if (VectorInfo !=
NULL) {
123 if (EFI_ERROR (Status)) {
124 return EFI_INVALID_PARAMETER;
132 IdtEntryCount = (IdtDescriptor.Limit + 1) /
sizeof (IA32_IDT_GATE_DESCRIPTOR);
133 if (IdtEntryCount > CPU_EXCEPTION_NUM) {
137 IdtEntryCount = CPU_EXCEPTION_NUM;
146 IdtTable = (IA32_IDT_GATE_DESCRIPTOR *)IdtDescriptor.Base;
147 for (Index = 0; Index < IdtEntryCount; Index++) {
148 IdtTable[Index].Bits.Selector = CodeSegment;
153 if (VectorInfo !=
NULL) {
162 InterruptHandler = TemplateMap.ExceptionStart + Index * TemplateMap.ExceptionStubHeaderSize;
199 return EFI_UNSUPPORTED;
223 return EFI_UNSUPPORTED;
RETURN_STATUS EFIAPI SerialPortInitialize(VOID)
VOID EFIAPI CpuDeadLoop(VOID)
VOID *EFIAPI SetMem(OUT VOID *Buffer, IN UINTN Length, IN UINT8 Value)
EFI_STATUS EFIAPI CcExitHandleVe(IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext)
VOID(EFIAPI * EFI_CPU_INTERRUPT_HANDLER)(IN CONST EFI_EXCEPTION_TYPE InterruptType, IN CONST EFI_SYSTEM_CONTEXT SystemContext)
EFI_STATUS ReadAndVerifyVectorInfo(IN EFI_VECTOR_HANDOFF_INFO *VectorInfo, OUT RESERVED_VECTORS_DATA *ReservedVector, IN UINTN VectorCount)
VOID DumpImageAndCpuContent(IN EFI_EXCEPTION_TYPE ExceptionType, IN EFI_SYSTEM_CONTEXT SystemContext)
VOID EFIAPI AsmGetTemplateAddressMap(OUT EXCEPTION_HANDLER_TEMPLATE_MAP *AddressMap)
VOID ArchUpdateIdtEntry(OUT IA32_IDT_GATE_DESCRIPTOR *IdtEntry, IN UINTN InterruptHandler)
UINT16 EFIAPI AsmReadCs(VOID)
EFI_STATUS EFIAPI CcExitHandleVc(IN OUT EFI_EXCEPTION_TYPE *ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext)
EFI_STATUS EFIAPI InitializeSeparateExceptionStacks(IN VOID *Buffer, IN OUT UINTN *BufferSize)
EFI_STATUS EFIAPI InitializeCpuExceptionHandlers(IN EFI_VECTOR_HANDOFF_INFO *VectorInfo OPTIONAL)
EFI_STATUS EFIAPI RegisterCpuInterruptHandler(IN EFI_EXCEPTION_TYPE InterruptType, IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler)
VOID EFIAPI CommonExceptionHandler(IN EFI_EXCEPTION_TYPE ExceptionType, IN EFI_SYSTEM_CONTEXT SystemContext)
#define EFI_VECTOR_HANDOFF_DO_NOT_HOOK
VOID EFIAPI AsmReadIdtr(OUT IA32_DESCRIPTOR *Idtr)