25ExceptionHandlersStart (
35extern UINTN gMaxExceptionNumber;
37extern PHYSICAL_ADDRESS gExceptionVectorAlignmentMask;
57InitializeCpuExceptionHandlers (
71 ASSERT (((
UINTN)ExceptionHandlersStart & gExceptionVectorAlignmentMask) == 0);
73 VectorBase = (UINT64)(
UINTN)ExceptionHandlersStart;
77 ArchVectorConfig ((
UINTN)VectorBase);
79 ArmWriteVBar ((
UINTN)VectorBase);
110RegisterCpuInterruptHandler (
115 if ((
UINTN)ExceptionType > gMaxExceptionNumber) {
119 if ((ExceptionHandler !=
NULL) && (gExceptionHandlers[ExceptionType] !=
NULL)) {
123 gExceptionHandlers[ExceptionType] = ExceptionHandler;
130CommonCExceptionHandler (
135 if ((
UINTN)ExceptionType <= gMaxExceptionNumber) {
136 if (gExceptionHandlers[ExceptionType]) {
137 gExceptionHandlers[ExceptionType](ExceptionType, SystemContext);
141 DEBUG ((DEBUG_ERROR,
"Unknown exception type %d\n", ExceptionType));
164InitializeSeparateExceptionStacks (
VOID(EFIAPI * EFI_CPU_INTERRUPT_HANDLER)(IN CONST EFI_EXCEPTION_TYPE InterruptType, IN CONST EFI_SYSTEM_CONTEXT SystemContext)
VOID DefaultExceptionHandler(IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext)
#define RETURN_UNSUPPORTED
#define RETURN_ALREADY_STARTED
#define DEBUG(Expression)
VOID(EFIAPI * EFI_EXCEPTION_CALLBACK)(IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext)