diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Core/GUID/StatusCodeDataTypeId.h | |
download | zprj-master.tar.xz |
Diffstat (limited to 'Core/GUID/StatusCodeDataTypeId.h')
-rw-r--r-- | Core/GUID/StatusCodeDataTypeId.h | 508 |
1 files changed, 508 insertions, 0 deletions
diff --git a/Core/GUID/StatusCodeDataTypeId.h b/Core/GUID/StatusCodeDataTypeId.h new file mode 100644 index 0000000..6177e17 --- /dev/null +++ b/Core/GUID/StatusCodeDataTypeId.h @@ -0,0 +1,508 @@ +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2012, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 6145-F Northbelt Pkwy, Norcross, GA 30071 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** + +//********************************************************************** +// $Header: /Alaska/SOURCE/Core/EDK/GUID/StatusCodeDataTypeId.h 3 1/12/12 12:13p Oleksiyy $ +// +// $Revision: 3 $ +// +// $Date: 1/12/12 12:13p $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Core/EDK/GUID/StatusCodeDataTypeId.h $ +// +// 3 1/12/12 12:13p Oleksiyy +// [TAG] EIP75246 +// [Category] Bug Fix +// [Severity] Normal +// [Symptom] PI 1.2 Errata C Status Code +// [RootCause] PI 1.2 Errata C introduced changies in definitions. +// [Solution] Defenitions fixed up to PI 1.2 Errata C. +// [Files] AmiStatusCodes.h, StatusCodes.h, StatusCodeDataTypeId.h +// +// 2 5/13/11 6:32p Oleksiyy +// [TAG] EIP56645 +// [Category] Improvement +// [Description] Status Code PI 1.2 Specification Update +// [Files] DebugSupport.h, StatusCodeDataTypeId.h and StatusCodes.h +// +// 1 5/19/06 11:29p Felixp +// +//********************************************************************** +//<AMI_FHDR_START> +// +// Name: StatusCodeDataTypeId.h +// +// Description: Statuc Code Data Type ID GUIDs +// +//<AMI_FHDR_END> +//********************************************************************** +#ifndef __STATUS_CODE_DATA_TYPE_GUIDS__H__ +#define __STATUS_CODE_DATA_TYPE_GUIDS__H__ +#ifdef __cplusplus +extern "C" { +#endif + +#include <StatusCodes.h> +//GUID_VARIABLE_DECLARATION(gEfiCallerIdGuid, EFI_STANDARD_CALLER_ID_GUID); + +// +// The size of string +// +#define EFI_STATUS_CODE_DATA_MAX_STRING_SIZE 150 + +// +// This is the max data size including all the headers which can be passed +// as Status Code data. This data should be multiple of 8 byte +// to avoid any kind of boundary issue. Also, sum of this data size (inclusive +// of size of EFI_STATUS_CODE_DATA should not exceed the max record size of +// data hub +// +#define EFI_STATUS_CODE_DATA_MAX_SIZE 200 + +// +// String Data Type defintion. This is part of Status Code Specification +// +#ifndef EFI_STATUS_CODE_DATA_TYPE_STRING_GUID +#define EFI_STATUS_CODE_DATA_TYPE_STRING_GUID \ + { \ + 0x92D11080, 0x496F, 0x4D95, 0xBE, 0x7E, 0x03, 0x74, 0x88, 0x38, 0x2B, 0x0A \ + } +#endif + +extern EFI_GUID gEfiStatusCodeDataTypeStringGuid; + +// +// This GUID indicates that the format of the accompanying data depends +// upon the Status Code Value, but follows this Specification +// +#ifndef EFI_STATUS_CODE_SPECIFIC_DATA_GUID +#define EFI_STATUS_CODE_SPECIFIC_DATA_GUID \ + { \ + 0x335984bd, 0xe805, 0x409a, 0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6 \ + } +#endif + +extern EFI_GUID gEfiStatusCodeSpecificDataGuid; + +//already defined in StatusCodes.h +/*#pragma pack(1) +typedef enum { + EfiStringAscii, + EfiStringUnicode, + EfiStringToken +} EFI_STRING_TYPE; + +typedef struct { + EFI_STRING_TYPE StringType; + // + // NULL terminated string follows here + // +} EFI_STATUS_CODE_STRING_DATA; +#pragma pack()*/ +// +// Debug Assert Data. This is part of Status Code Specification +// +#define EFI_STATUS_CODE_DATA_TYPE_ASSERT_GUID \ + { \ + 0xDA571595, 0x4D99, 0x487C, 0x82, 0x7C, 0x26, 0x22, 0x67, 0x7D, 0x33, 0x07 \ + } + +GUID_VARIABLE_DECLARATION(gEfiStatusCodeDataTypeAssertGuid, EFI_STATUS_CODE_DATA_TYPE_ASSERT_GUID); +//extern EFI_GUID gEfiStatusCodeDataTypeAssertGuid; + +// +// Exception Data type (CPU REGS) +// +#define EFI_STATUS_CODE_DATA_TYPE_EXCEPTION_HANDLER_GUID \ + { \ + 0x3BC2BD12, 0xAD2E, 0x11D5, 0x87, 0xDD, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xB9 \ + } + +extern EFI_GUID gEfiStatusCodeDataTypeExceptionHandlerGuid; + +// +// Debug DataType defintions. User Defined Data Types. +// +#define EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID \ + { \ + 0x9A4E9246, 0xD553, 0x11D5, 0x87, 0xE2, 0x00, 0x06, 0x29, 0x45, 0xC3, 0xb9 \ + } + +#pragma pack(1) + +typedef struct { + UINT32 ErrorLevel; + // + // 12 * sizeof (UINT64) Var Arg stack + // + // ascii DEBUG () Format string + // +} EFI_DEBUG_INFO; + +#pragma pack() + +//extern EFI_GUID gEfiStatusCodeDataTypeDebugGuid; +GUID_VARIABLE_DECLARATION(gEfiStatusCodeDataTypeDebugGuid, EFI_STATUS_CODE_DATA_TYPE_DEBUG_GUID); + +// +// Progress Code. User Defined Data Type Guid. +// +#define EFI_STATUS_CODE_DATA_TYPE_ERROR_GUID \ + { \ + 0xAB359CE3, 0x99B3, 0xAE18, 0xC8, 0x9D, 0x95, 0xD3, 0xB0, 0x72, 0xE1, 0x9B \ + } + +extern EFI_GUID gEfiStatusCodeDataTypeErrorGuid; + +// +// declaration for EFI_EXP_DATA. This may change +// +typedef UINTN EFI_EXP_DATA; + +// +// Voltage Extended Error Data +// +#if PI_SPECIFICATION_VERSION>=0x0001000A +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_EXP_BASE10_DATA Voltage; + EFI_EXP_BASE10_DATA Threshold; +} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA; +#else +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_EXP_DATA Voltage; + EFI_EXP_DATA Threshold; +} EFI_COMPUTING_UNIT_VOLTAGE_ERROR_DATA; +#endif +// +// Microcode Update Extended Error Data +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + UINT32 Version; +} EFI_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA; + +// +// Asynchronous Timer Extended Error Data +// +#if PI_SPECIFICATION_VERSION>=0x0001000A +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_EXP_BASE10_DATA TimerLimit; +} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA; +#else +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_EXP_DATA TimerLimit; +} EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA; +#endif +// +// Host Processor Mismatch Extended Error Data +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + UINT32 Instance; + UINT16 Attributes; +} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA; + +// +// EFI_COMPUTING_UNIT_MISMATCH_ATTRIBUTES +// All other attributes are reserved for future use and +// must be initialized to 0. +// +#define EFI_COMPUTING_UNIT_MISMATCH_SPEED 0x0001 +#define EFI_COMPUTING_UNIT_MISMATCH_FSB_SPEED 0x0002 +#define EFI_COMPUTING_UNIT_MISMATCH_FAMILY 0x0004 +#define EFI_COMPUTING_UNIT_MISMATCH_MODEL 0x0008 +#define EFI_COMPUTING_UNIT_MISMATCH_STEPPING 0x0010 +#define EFI_COMPUTING_UNIT_MISMATCH_CACHE_SIZE 0x0020 +#define EFI_COMPUTING_UNIT_MISMATCH_OEM1 0x1000 +#define EFI_COMPUTING_UNIT_MISMATCH_OEM2 0x2000 +#define EFI_COMPUTING_UNIT_MISMATCH_OEM3 0x4000 +#define EFI_COMPUTING_UNIT_MISMATCH_OEM4 0x8000 + +// +// Thermal Extended Error Data +// +#if PI_SPECIFICATION_VERSION>=0x0001000A +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_EXP_BASE10_DATA Temperature; + EFI_EXP_BASE10_DATA Threshold; +} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA; +#else +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_EXP_DATA Temperature; + EFI_EXP_DATA Threshold; +} EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA; +#endif +// +// Processor Disabled Extended Error Data +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + UINT32 Cause; + BOOLEAN SoftwareDisabled; +} EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA; + +typedef enum { + EfiInitCacheDataOnly, + EfiInitCacheInstrOnly, + EfiInitCacheBoth, + EfiInitCacheUnspecified +} EFI_INIT_CACHE_TYPE; + +#if PI_SPECIFICATION_VERSION>=0x0001000A +//************************************************************ +// EFI_CPU_STATE_CHANGE_CAUSE +//************************************************************ +typedef UINT32 EFI_CPU_STATE_CHANGE_CAUSE; +// +// The reason a processor was disabled +// +#define EFI_CPU_CAUSE_INTERNAL_ERROR 0x0001 +#define EFI_CPU_CAUSE_THERMAL_ERROR 0x0002 +#define EFI_CPU_CAUSE_SELFTEST_FAILURE 0x0004 +#define EFI_CPU_CAUSE_PREBOOT_TIMEOUT 0x0008 +#define EFI_CPU_CAUSE_FAILED_TO_START 0x0010 +#define EFI_CPU_CAUSE_CONFIG_ERROR 0x0020 +#define EFI_CPU_CAUSE_USER_SELECTION 0x0080 +#define EFI_CPU_CAUSE_BY_ASSOCIATION 0x0100 +#define EFI_CPU_CAUSE_UNSPECIFIED 0x8000 + +#endif +// +// Embedded cache init extended data +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + UINT32 Level; + EFI_INIT_CACHE_TYPE Type; +} EFI_CACHE_INIT_DATA; + +// +// Memory Extended Error Data +// +// +// Memory Error Granularity Definition +// +typedef UINT8 EFI_MEMORY_ERROR_GRANULARITY; + +// +// Memory Error Operation Definition +// +typedef UINT8 EFI_MEMORY_ERROR_OPERATION; + +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_MEMORY_ERROR_GRANULARITY Granularity; + EFI_MEMORY_ERROR_OPERATION Operation; +#if PI_SPECIFICATION_VERSION>=0x0001000A + UINT32 Syndrome; +#else + UINTN Syndrome; +#endif + EFI_PHYSICAL_ADDRESS Address; + UINTN Resolution; +} EFI_MEMORY_EXTENDED_ERROR_DATA; + +// +// Memory Error Granularities +// +#define EFI_MEMORY_ERROR_OTHER 0x01 +#define EFI_MEMORY_ERROR_UNKNOWN 0x02 +#define EFI_MEMORY_ERROR_DEVICE 0x03 +#define EFI_MEMORY_ERROR_PARTITION 0x04 + +// +// Memory Error Operations +// +#define EFI_MEMORY_OPERATION_OTHER 0x01 +#define EFI_MEMORY_OPERATION_UNKNOWN 0x02 +#define EFI_MEMORY_OPERATION_READ 0x03 +#define EFI_MEMORY_OPERATION_WRITE 0x04 +#define EFI_MEMORY_OPERATION_PARTIAL_WRITE 0x05 + +// +// Define shorthands to describe Group Operations +// Many memory init operations are essentially group +// operations. +// A shorthand to describe that the operation is performed +// on multiple devices within the array +// +#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe +// +// A shorthand to describe that the operation is performed // on all devices within the array +// +#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff +// +// A shorthand to describe that the operation is performed // on multiple arrays +// +#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe +// +// A shorthand to describe that the operation is performed // on all the arrays +// +#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff + +// +// DIMM number +// +#pragma pack(1) +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + UINT16 Array; + UINT16 Device; +} EFI_STATUS_CODE_DIMM_NUMBER; +#pragma pack() +// +// Memory Module Mismatch Extended Error Data +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_STATUS_CODE_DIMM_NUMBER Instance; +} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA; + +// +// Memory Range Extended Data +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_PHYSICAL_ADDRESS Start; + EFI_PHYSICAL_ADDRESS Length; +} EFI_MEMORY_RANGE_EXTENDED_DATA; + +// +// Device handle Extended Data. Used for many +// errors and progress codes to point to the device. +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_HANDLE Handle; +} EFI_DEVICE_HANDLE_EXTENDED_DATA; + +#if PI_SPECIFICATION_VERSION>=0x0001000A +// +//Extended data about the device path, which is used for many errors and progress codes +//to point to the device. +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + UINT8 *DevicePath; +} EFI_DEVICE_PATH_EXTENDED_DATA; + +// +// Resource Allocation Failure Extended Error Data +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + UINT32 Bar; + UINT16 DevicePathSize; + UINT16 ReqResSize; + UINT16 AllocResSize; + UINT8 *DevicePath; + UINT8 *ReqRes; + UINT8 *AllocRes; +} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA; +#else +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + UINT32 Bar; + VOID *ReqRes; + VOID *AllocRes; +} EFI_RESOURCE_ALLOC_FAILURE_ERROR_DATA; +#endif + +/*Already defined in StatusCodes.h +// +// Extended Error Data for Assert +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + UINT32 LineNumber; + UINT32 FileNameSize; + EFI_STATUS_CODE_STRING_DATA *FileName; +} EFI_DEBUG_ASSERT_DATA; +*/ +// +// System Context Data EBC/IA32/IPF +// +#ifndef GUID_VARIABLE_DEFINITION +#include <Protocol/DebugSupport.h> + +typedef union { + EFI_SYSTEM_CONTEXT_EBC SystemContextEbc; + EFI_SYSTEM_CONTEXT_IA32 SystemContextIa32; + EFI_SYSTEM_CONTEXT_IPF SystemContextIpf; +#if PI_SPECIFICATION_VERSION>=0x0001000A + EFI_SYSTEM_CONTEXT_X64 SystemContextX64; + EFI_SYSTEM_CONTEXT_ARM SystemContextArm; +#endif +} EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT; + +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context; +} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA; +#endif +// +// Legacy Oprom extended data +// +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_HANDLE DeviceHandle; + EFI_PHYSICAL_ADDRESS RomImageBase; +} EFI_LEGACY_OPROM_EXTENDED_DATA; + +#if PI_SPECIFICATION_VERSION>=0x0001000A +typedef struct { + EFI_STATUS_CODE_DATA DataHeader; + EFI_HANDLE ControllerHandle; + EFI_HANDLE DriverBindingHandle; + UINT16 DevicePathSize; + UINT8 *RemainingDevicePath; +} EFI_STATUS_CODE_START_EXTENDED_DATA; +#endif +// +// Progress Code. User Defined Data Type Guid. +// +#define EFI_STATUS_CODE_DATA_TYPE_PROGRESS_CODE_GUID \ + { \ + 0xA356AB39, 0x35C4, 0x35DA, 0xB3, 0x7A, 0xF8, 0xEA, 0x9E, 0x8B, 0x36, 0xA3 \ + } + +extern EFI_GUID gEfiStatusCodeDataTypeProgressCodeGuid; + +/****** DO NOT WRITE BELOW THIS LINE *******/ +#ifdef __cplusplus +} +#endif +#endif +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2012, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 6145-F Northbelt Pkwy, Norcross, GA 30071 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//**********************************************************************
\ No newline at end of file |