13eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang/*++ 23eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3f57387d54bd8f2c0261834b2ad16155f1db63291hhtianCopyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR> 4f57387d54bd8f2c0261834b2ad16155f1db63291hhtianThis program and the accompanying materials 53eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangare licensed and made available under the terms and conditions of the BSD License 63eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangwhich accompanies this distribution. The full text of the license may be found at 73eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwanghttp://opensource.org/licenses/bsd-license.php 83eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 93eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 123eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangModule Name: 133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang StatusCodeDataTypeId.h 153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangAbstract: 173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang GUID used to identify id for the caller who is initiating the Status Code. 193eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang--*/ 213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 223eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#ifndef _STATUS_CODE_DATA_TYPE_ID_H__ 233eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define _STATUS_CODE_DATA_TYPE_ID_H__ 243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 263eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#include "EfiStatusCode.h" 273eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#include EFI_PROTOCOL_DEFINITION (DebugSupport) 282c40a813fc32c5c9aa204b10b037c48f42fe6422qwang#if (EFI_SPECIFICATION_VERSION >= 0x0002000A) 292c40a813fc32c5c9aa204b10b037c48f42fe6422qwang#include EFI_PROTOCOL_DEFINITION (HiiDatabase) 302c40a813fc32c5c9aa204b10b037c48f42fe6422qwang#else 313eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#include EFI_PROTOCOL_DEFINITION (Hii) 322c40a813fc32c5c9aa204b10b037c48f42fe6422qwang#endif 333eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 343eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// The size of string 353eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 363eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150 373eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 383eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 393eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// This is the max data size including all the headers which can be passed 403eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// as Status Code data. This data should be multiple of 8 byte 413eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// to avoid any kind of boundary issue. Also, sum of this data size (inclusive 423eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of 433eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// data hub 443eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 453eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_STATUS_CODE_DATA_MAX_SIZE 200 463eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 473eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 483eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// String Data Type defintion. This is part of Status Code Specification 493eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 503eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_STATUS_CODE_DATA_TYPE_STRING_GUID \ 513eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang { \ 527ccf38a33e1e227131c170a621d183b3bacef148qhuang 0x92D11080, 0x496F, 0x4D95, {0xBE, 0x7E, 0x03, 0x74, 0x88, 0x38, 0x2B, 0x0A} \ 533eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang } 543eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 553eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangextern EFI_GUID gEfiStatusCodeDataTypeStringGuid; 563eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 573eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 583eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// This GUID indicates that the format of the accompanying data depends 593eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// upon the Status Code Value, but follows this Specification 603eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 613eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_STATUS_CODE_SPECIFIC_DATA_GUID \ 623eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang { \ 637ccf38a33e1e227131c170a621d183b3bacef148qhuang 0x335984bd, 0xe805, 0x409a, {0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6} \ 643eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang } 653eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 663eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangextern EFI_GUID gEfiStatusCodeSpecificDataGuid; 673eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 683eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack(1) 693eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 703eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef enum { 713eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EfiStringAscii, 723eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EfiStringUnicode, 733eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EfiStringToken 743eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_STRING_TYPE; 753eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 763eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 773eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// HII string token 783eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 793eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 803eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_HII_HANDLE Handle; 813eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangSTRING_REF Token; 823eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_STATUS_CODE_STRING_TOKEN; 833eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 843eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef union { 853eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangCHAR8 *Ascii; 863eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangCHAR16 *Unicode; 873eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangEFI_STATUS_CODE_STRING_TOKEN Hii; 883eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_STATUS_CODE_STRING; 893eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 903eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 913eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 923eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STRING_TYPE StringType; 933eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_STRING String; 943eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_STATUS_CODE_STRING_DATA; 953eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 963eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack() 973eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 983eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Debug Assert Data. This is part of Status Code Specification 993eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1003eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_STATUS_CODE_DATA_TYPE_ASSERT_GUID \ 1013eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang { \ 1027ccf38a33e1e227131c170a621d183b3bacef148qhuang 0xDA571595, 0x4D99, 0x487C, {0x82, 0x7C, 0x26, 0x22, 0x67, 0x7D, 0x33, 0x07} \ 1033eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang } 1043eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1053eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangextern EFI_GUID gEfiStatusCodeDataTypeAssertGuid; 1063eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1073eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1083eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Exception Data type (CPU REGS) 1093eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_STATUS_CODE_DATA_TYPE_EXCEPTION_HANDLER_GUID \ 1113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang { \ 1127ccf38a33e1e227131c170a621d183b3bacef148qhuang 0x3BC2BD12, 0xAD2E, 0x11D5, {0x87, 0xDD, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9} \ 1133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang } 1143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangextern EFI_GUID gEfiStatusCodeDataTypeExceptionHandlerGuid; 1163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Debug DataType defintions. User Defined Data Types. 1193eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID \ 1213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang { \ 1227ccf38a33e1e227131c170a621d183b3bacef148qhuang 0x9A4E9246, 0xD553, 0x11D5, {0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xb9} \ 1233eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang } 1243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack(1) 1263eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1273eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 1283eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 ErrorLevel; 1293eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang // 1303eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang // 12 * sizeof (UINT64) Var Arg stack 1313eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang // 1323eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang // ascii DEBUG () Format string 1333eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang // 1343eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_DEBUG_INFO; 1353eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1363eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack() 1373eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1383eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangextern EFI_GUID gEfiStatusCodeDataTypeDebugGuid; 1393eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1403eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1413eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Progress Code. User Defined Data Type Guid. 1423eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1433eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_STATUS_CODE_DATA_TYPE_ERROR_GUID \ 1443eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang { \ 1457ccf38a33e1e227131c170a621d183b3bacef148qhuang 0xAB359CE3, 0x99B3, 0xAE18, {0xC8, 0x9D, 0x95, 0xD3, 0xB0, 0x72, 0xE1, 0x9B} \ 1463eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang } 1473eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1483eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangextern EFI_GUID gEfiStatusCodeDataTypeErrorGuid; 1493eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1503eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1513eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// declaration for EFI_EXP_DATA. This may change 1523eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1533eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef UINTN EFI_EXP_DATA; 1543eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1553eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1563eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Voltage Extended Error Data 1573eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1583eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 1593eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 1603eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_EXP_DATA Voltage; 1613eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_EXP_DATA Threshold; 1623eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA; 1633eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1643eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1653eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Microcode Update Extended Error Data 1663eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1673eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 1683eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 1693eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 Version; 1703eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA; 1713eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1723eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1733eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Asynchronous Timer Extended Error Data 1743eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1753eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 1763eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 1773eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_EXP_DATA TimerLimit; 1783eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA; 1793eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1803eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1813eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Host Processor Mismatch Extended Error Data 1823eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1833eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 1843eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 1853eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 Instance; 1863eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT16 Attributes; 1873eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA; 1883eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 1893eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1903eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES 1913eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// All other attributes are reserved for future use and 1923eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// must be initialized to 0. 1933eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 1943eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001 1953eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002 1963eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004 1973eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008 1983eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010 1993eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020 2003eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000 2013eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000 2023eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000 2033eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000 2043eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2053eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2063eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Thermal Extended Error Data 2073eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2083eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 2093eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 2103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_EXP_DATA Temperature; 2113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_EXP_DATA Threshold; 2123eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA; 2133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Processor Disabled Extended Error Data 2163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 2183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 2193eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 Cause; 2203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang BOOLEAN SoftwareDisabled; 2213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA; 2223eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2233eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef enum { 2243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EfiInitCacheDataOnly, 2253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EfiInitCacheInstrOnly, 2263eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EfiInitCacheBoth, 2273eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EfiInitCacheUnspecified 2283eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_INIT_CACHE_TYPE; 2293eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2303eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2313eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Embedded cache init extended data 2323eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2333eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 2343eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 2353eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 Level; 2363eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_INIT_CACHE_TYPE Type; 2373eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_CACHE_INIT_DATA; 2383eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2393eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2403eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Memory Extended Error Data 2413eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2423eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2433eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Memory Error Granularity Definition 2443eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2453eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef UINT8 EFI_MEMORY_ERROR_GRANULARITY; 2463eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2473eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2483eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Memory Error Operation Definition 2493eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2503eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef UINT8 EFI_MEMORY_ERROR_OPERATION; 2513eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2523eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 2533eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 2543eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_MEMORY_ERROR_GRANULARITY Granularity; 2553eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_MEMORY_ERROR_OPERATION Operation; 2563eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINTN Syndrome; 2573eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PHYSICAL_ADDRESS Address; 2583eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINTN Resolution; 2593eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_MEMORY_EXTENDED_ERROR_DATA; 2603eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2613eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2623eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Memory Error Granularities 2633eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2643eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MEMORY_ERROR_OTHER 0x01 2653eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MEMORY_ERROR_UNKNOWN 0x02 2663eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MEMORY_ERROR_DEVICE 0x03 2673eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MEMORY_ERROR_PARTITION 0x04 2683eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2693eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2703eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Memory Error Operations 2713eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2723eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MEMORY_OPERATION_OTHER 0x01 2733eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MEMORY_OPERATION_UNKNOWN 0x02 2743eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MEMORY_OPERATION_READ 0x03 2753eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MEMORY_OPERATION_WRITE 0x04 2763eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05 2773eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2783eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2793eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Define shorthands to describe Group Operations 2803eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Many memory init operations are essentially group 2813eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// operations. 2823eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// A shorthand to describe that the operation is performed 2833eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// on multiple devices within the array 2843eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2853eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe 2863eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2873eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// A shorthand to describe that the operation is performed // on all devices within the array 2883eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2893eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff 2903eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2913eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// A shorthand to describe that the operation is performed // on multiple arrays 2923eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2933eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe 2943eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2953eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// A shorthand to describe that the operation is performed // on all the arrays 2963eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 2973eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff 2983eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 2993eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3003eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// DIMM number 3013eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3023eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack(1) 3033eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 3043eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 3053eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT16 Array; 3063eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT16 Device; 3073eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_STATUS_CODE_DIMM_NUMBER; 3083eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#pragma pack() 3093eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3103eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Memory Module Mismatch Extended Error Data 3113eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3123eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 3133eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 3143eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DIMM_NUMBER Instance; 3153eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA; 3163eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3173eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3183eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Memory Range Extended Data 3193eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3203eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 3213eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 3223eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PHYSICAL_ADDRESS Start; 3233eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PHYSICAL_ADDRESS Length; 3243eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_MEMORY_RANGE_EXTENDED_DATA; 3253eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3263eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3273eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Device handle Extended Data. Used for many 3283eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// errors and progress codes to point to the device. 3293eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3303eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 3313eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 3323eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_HANDLE Handle; 3333eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_DEVICE_HANDLE_EXTENDED_DATA; 3343eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3353eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3363eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Resource Allocation Failure Extended Error Data 3373eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3383eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 3393eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 3403eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_DEVICE_PATH_PROTOCOL *DevicePath; 3413eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 Bar; 3423eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang VOID *ReqRes; 3433eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang VOID *AllocRes; 3443eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA; 3453eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3463eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3473eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Extended Error Data for Assert 3483eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3493eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 3503eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 3513eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 LineNumber; 3523eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang UINT32 FileNameSize; 3533eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_STRING_DATA *FileName; 3543eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_DEBUG_ASSERT_DATA; 3553eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3563eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3573eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// System Context Data EBC/IA32/IPF 3583eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3593eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef union { 3603eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_SYSTEM_CONTEXT_EBC SystemContextEbc; 3613eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32; 3623eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_SYSTEM_CONTEXT_IPF SystemContextIpf; 3633eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT; 3643eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3653eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 3663eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 3673eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context; 3683eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA; 3693eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3703eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3713eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Legacy Oprom extended data 3723eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3733eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangtypedef struct { 3743eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_STATUS_CODE_DATA DataHeader; 3753eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_HANDLE DeviceHandle; 3763eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang EFI_PHYSICAL_ADDRESS RomImageBase; 3773eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang} EFI_LEGACY_OPROM_EXTENDED_DATA; 3783eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3793eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3803eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// Progress Code. User Defined Data Type Guid. 3813eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang// 3823eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#define EFI_STATUS_CODE_DATA_TYPE_PROGRESS_CODE_GUID \ 3833eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang { \ 3847ccf38a33e1e227131c170a621d183b3bacef148qhuang 0xA356AB39, 0x35C4, 0x35DA, {0xB3, 0x7A, 0xF8, 0xEA, 0x9E, 0x8B, 0x36, 0xA3} \ 3853eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang } 3863eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3873eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwangextern EFI_GUID gEfiStatusCodeDataTypeProgressCodeGuid; 3883eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang 3893eb9473ea9a949badfe06ae61d2d3fcfa53651c7qwang#endif 390