\r
#include "ArchInterruptDefs.h"\r
\r
+#define CPU_EXCEPTION_HANDLER_LIB_HOB_GUID \\r
+ { \\r
+ 0xb21d9148, 0x9211, 0x4d8f, { 0xad, 0xd3, 0x66, 0xb1, 0x89, 0xc9, 0x2c, 0x83 } \\r
+ }\r
+\r
//\r
// Record exception handler information\r
//\r
/**\r
Registers a function to be called from the processor interrupt handler.\r
\r
- @param[in] InterruptType Defines which interrupt or exception to hook.\r
- @param[in] InterruptHandler A pointer to a function of type EFI_CPU_INTERRUPT_HANDLER that is called\r
- when a processor interrupt occurs. If this parameter is NULL, then the handler\r
- will be uninstalled.\r
+ @param[in] InterruptType Defines which interrupt or exception to hook.\r
+ @param[in] InterruptHandler A pointer to a function of type EFI_CPU_INTERRUPT_HANDLER that is called\r
+ when a processor interrupt occurs. If this parameter is NULL, then the handler\r
+ will be uninstalled\r
+ @param[in] ExceptionHandlerData Pointer to exception handler data.\r
\r
@retval EFI_SUCCESS The handler for the processor interrupt was successfully installed or uninstalled.\r
@retval EFI_ALREADY_STARTED InterruptHandler is not NULL, and a handler for InterruptType was\r
EFI_STATUS\r
RegisterCpuInterruptHandlerWorker (\r
IN EFI_EXCEPTION_TYPE InterruptType,\r
- IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler\r
+ IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler,\r
+ IN EXCEPTION_HANDLER_DATA *ExceptionHandlerData\r
);\r
\r
/**\r
Internal worker function to update IDT entries accordling to vector attributes.\r
\r
- @param[in] IdtTable Pointer to IDT table.\r
- @param[in] TemplateMap Pointer to a buffer where the address map is returned.\r
- @param[in] IdtEntryCount IDT entries number to be updated.\r
+ @param[in] IdtTable Pointer to IDT table.\r
+ @param[in] TemplateMap Pointer to a buffer where the address map is\r
+ returned.\r
+ @param[in] ExceptionHandlerData Pointer to exception handler data.\r
\r
**/\r
VOID\r
UpdateIdtTable (\r
IN IA32_IDT_GATE_DESCRIPTOR *IdtTable,\r
IN EXCEPTION_HANDLER_TEMPLATE_MAP *TemplateMap,\r
- IN UINTN IdtEntryCount\r
+ IN EXCEPTION_HANDLER_DATA *ExceptionHandlerData\r
);\r
\r
/**\r
IN EFI_EXCEPTION_TYPE ExceptionType\r
);\r
\r
+/**\r
+ Internal worker function for common exception handler.\r
+\r
+ @param ExceptionType Exception type.\r
+ @param SystemContext Pointer to EFI_SYSTEM_CONTEXT.\r
+ @param ExceptionHandlerData Pointer to exception handler data.\r
+**/\r
+VOID\r
+CommonExceptionHandlerWorker (\r
+ IN EFI_EXCEPTION_TYPE ExceptionType, \r
+ IN EFI_SYSTEM_CONTEXT SystemContext,\r
+ IN EXCEPTION_HANDLER_DATA *ExceptionHandlerData\r
+ );\r
+\r
#endif\r
\r