17CONST UINT32 mErrorCodeFlag = 0x20227d00;
22#define MAX_DEBUG_MESSAGE_LENGTH 0x100
24CONST CHAR8 mExceptionReservedStr[] =
"Reserved";
25CONST CHAR8 *mExceptionNameStr[] = {
31 "#BR - BOUND Range Exceeded",
32 "#UD - Invalid Opcode",
33 "#NM - Device Not Available",
35 "Coprocessor Segment Overrun",
37 "#NP - Segment Not Present",
38 "#SS - Stack Fault Fault",
39 "#GP - General Protection",
42 "#MF - x87 FPU Floating-Point Error",
43 "#AC - Alignment Check",
44 "#MC - Machine-Check",
45 "#XM - SIMD floating-point",
46 "#VE - Virtualization",
47 "#CP - Control Protection",
55 "#VC - VMM Communication",
58#define EXCEPTION_KNOWN_NAME_NUM (sizeof (mExceptionNameStr) / sizeof (CHAR8 *))
72 if ((
UINTN)ExceptionType < EXCEPTION_KNOWN_NAME_NUM) {
73 return mExceptionNameStr[ExceptionType];
75 return mExceptionReservedStr;
94 CHAR8 Buffer[MAX_DEBUG_MESSAGE_LENGTH];
133 Status = PeCoffLoaderGetEntryPoint ((VOID *)Pe32Data, &EntryPoint);
134 if (EFI_ERROR (Status)) {
139 PdbPointer = PeCoffLoaderGetPdbPointer ((VOID *)Pe32Data);
140 if (PdbPointer !=
NULL) {
147 " (ImageBase=%016lp, EntryPoint=%016p) !!!!\n",
172 while (VectorInfo->Attribute != EFI_VECTOR_HANDOFF_LAST_ENTRY) {
173 if (VectorInfo->Attribute > EFI_VECTOR_HANDOFF_HOOK_AFTER) {
177 return EFI_INVALID_PARAMETER;
180 if (VectorInfo->VectorNumber < VectorCount) {
181 ReservedVector[VectorInfo->VectorNumber].Attribute = VectorInfo->Attribute;
UINTN EFIAPI SerialPortWrite(IN UINT8 *Buffer, IN UINTN NumberOfBytes)
#define VA_START(Marker, Parameter)
UINTN EFIAPI AsciiStrLen(IN CONST CHAR8 *String)
VOID DumpModuleImageInfo(IN UINTN CurrentEip)
EFI_STATUS ReadAndVerifyVectorInfo(IN EFI_VECTOR_HANDOFF_INFO *VectorInfo, OUT RESERVED_VECTORS_DATA *ReservedVector, IN UINTN VectorCount)
CONST CHAR8 * GetExceptionNameStr(IN EFI_EXCEPTION_TYPE ExceptionType)
VOID EFIAPI InternalPrintMessage(IN CONST CHAR8 *Format,...)
UINTN EFIAPI AsciiVSPrint(OUT CHAR8 *StartOfBuffer, IN UINTN BufferSize, IN CONST CHAR8 *FormatString, IN VA_LIST Marker)
UINTN EFIAPI PeCoffSearchImageBase(IN UINTN Address)