mirror of https://github.com/acidanthera/audk.git
132 lines
2.7 KiB
C
132 lines
2.7 KiB
C
|
/** @file DxeExceptionLib.h
|
||
|
|
||
|
Common header file for CPU Exception Handler Library.
|
||
|
|
||
|
Copyright (c) 2024, Loongson Technology Corporation Limited. All rights reserved.<BR>
|
||
|
|
||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||
|
**/
|
||
|
|
||
|
#ifndef EXCEPTION_COMMON_H_
|
||
|
#define EXCEPTION_COMMON_H_
|
||
|
|
||
|
#define MAX_DEBUG_MESSAGE_LENGTH 0x100
|
||
|
|
||
|
//
|
||
|
// For coding convenience, define the maximum valid
|
||
|
// LoongArch exception.
|
||
|
// Since UEFI V2.11, it will be present in DebugSupport.h.
|
||
|
//
|
||
|
#define MAX_LOONGARCH_EXCEPTION 64
|
||
|
|
||
|
extern INTN mExceptionKnownNameNum;
|
||
|
|
||
|
/**
|
||
|
Get ASCII format string exception name by exception type.
|
||
|
|
||
|
@param[in] ExceptionType Exception type.
|
||
|
|
||
|
@return ASCII format string exception name.
|
||
|
|
||
|
**/
|
||
|
CONST CHAR8 *
|
||
|
GetExceptionNameStr (
|
||
|
IN EFI_EXCEPTION_TYPE ExceptionType
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Prints a message to the serial port.
|
||
|
|
||
|
@param[in] Format Format string for the message to print.
|
||
|
@param[in] ... Variable argument list whose contents are accessed
|
||
|
based on the format string specified by Format.
|
||
|
|
||
|
**/
|
||
|
VOID
|
||
|
EFIAPI
|
||
|
InternalPrintMessage (
|
||
|
IN CONST CHAR8 *Format,
|
||
|
...
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Find and display image base address and return image base and its entry point.
|
||
|
|
||
|
@param[in] CurrentEip Current instruction pointer.
|
||
|
|
||
|
**/
|
||
|
VOID
|
||
|
DumpModuleImageInfo (
|
||
|
IN UINTN CurrentEip
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
IPI Interrupt Handler.
|
||
|
|
||
|
@param InterruptType The type of interrupt that occurred
|
||
|
@param SystemContext A pointer to the system context when the interrupt occurred
|
||
|
**/
|
||
|
VOID
|
||
|
EFIAPI
|
||
|
IpiInterruptHandler (
|
||
|
IN EFI_EXCEPTION_TYPE InterruptType,
|
||
|
IN EFI_SYSTEM_CONTEXT SystemContext
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Default exception handler.
|
||
|
|
||
|
@param[in] ExceptionType Exception type.
|
||
|
@param[in] SystemContext Pointer to EFI_SYSTEM_CONTEXT.
|
||
|
|
||
|
**/
|
||
|
VOID
|
||
|
EFIAPI
|
||
|
DefaultExceptionHandler (
|
||
|
IN EFI_EXCEPTION_TYPE ExceptionType,
|
||
|
IN OUT EFI_SYSTEM_CONTEXT SystemContext
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Display CPU information.
|
||
|
|
||
|
@param[in] ExceptionType Exception type.
|
||
|
@param[in] SystemContext Pointer to EFI_SYSTEM_CONTEXT.
|
||
|
|
||
|
**/
|
||
|
VOID
|
||
|
DumpImageAndCpuContent (
|
||
|
IN EFI_EXCEPTION_TYPE ExceptionType,
|
||
|
IN EFI_SYSTEM_CONTEXT SystemContext
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Get exception types
|
||
|
|
||
|
@param[in] SystemContext Pointer to EFI_SYSTEM_CONTEXT.
|
||
|
|
||
|
@return Exception type.
|
||
|
|
||
|
**/
|
||
|
EFI_EXCEPTION_TYPE
|
||
|
EFIAPI
|
||
|
GetExceptionType (
|
||
|
IN EFI_SYSTEM_CONTEXT SystemContext
|
||
|
);
|
||
|
|
||
|
/**
|
||
|
Get Common interrupt types
|
||
|
|
||
|
@param[in] SystemContext Pointer to EFI_SYSTEM_CONTEXT.
|
||
|
|
||
|
@return Interrupt type.
|
||
|
|
||
|
**/
|
||
|
EFI_EXCEPTION_TYPE
|
||
|
EFIAPI
|
||
|
GetInterruptType (
|
||
|
IN EFI_SYSTEM_CONTEXT SystemContext
|
||
|
);
|
||
|
|
||
|
#endif
|