aboutsummaryrefslogtreecommitdiff
path: root/MdePkg/Include/Guid/StatusCodeDataTypeId.h
diff options
context:
space:
mode:
Diffstat (limited to 'MdePkg/Include/Guid/StatusCodeDataTypeId.h')
-rw-r--r--MdePkg/Include/Guid/StatusCodeDataTypeId.h186
1 files changed, 100 insertions, 86 deletions
diff --git a/MdePkg/Include/Guid/StatusCodeDataTypeId.h b/MdePkg/Include/Guid/StatusCodeDataTypeId.h
index 8bbc3315bc62..60114dffa489 100644
--- a/MdePkg/Include/Guid/StatusCodeDataTypeId.h
+++ b/MdePkg/Include/Guid/StatusCodeDataTypeId.h
@@ -1,17 +1,11 @@
/** @file
GUID used to identify id for the caller who is initiating the Status Code.
- Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+ Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
- These GUIDs and structures are defined in UEFI Platform Initialization Specification 1.2
+ These GUIDs and structures are defined in UEFI Platform Initialization Specification 1.2
Volume 3: Shared Architectural Elements
**/
@@ -38,12 +32,12 @@ typedef enum {
///
EfiStringUnicode,
///
- /// An EFI_STATUS_CODE_STRING_TOKEN representing the string. The actual
+ /// An EFI_STATUS_CODE_STRING_TOKEN representing the string. The actual
/// string can be obtained by querying the HII Database
///
EfiStringToken
} EFI_STRING_TYPE;
-
+
///
/// Specifies the format of the data in EFI_STATUS_CODE_STRING_DATA.String.
///
@@ -60,7 +54,7 @@ typedef struct {
///
EFI_STRING_ID Token;
} EFI_STATUS_CODE_STRING_TOKEN;
-
+
typedef union {
///
/// ASCII formatted string.
@@ -75,11 +69,11 @@ typedef union {
///
EFI_STATUS_CODE_STRING_TOKEN Hii;
} EFI_STATUS_CODE_STRING;
-
+
///
-/// This data type defines a string type of extended data. A string can accompany
-/// any status code. The string can provide additional information about the
-/// status code. The string can be ASCII, Unicode, or a Human Interface Infrastructure
+/// This data type defines a string type of extended data. A string can accompany
+/// any status code. The string can provide additional information about the
+/// status code. The string can be ASCII, Unicode, or a Human Interface Infrastructure
/// (HII) token/GUID pair.
///
typedef struct {
@@ -89,14 +83,14 @@ typedef struct {
/// sizeof (EFI_STATUS_CODE_STRING_DATA) - HeaderSize, and
/// DataHeader.Type should be
/// EFI_STATUS_CODE_DATA_TYPE_STRING_GUID.
- ///
- EFI_STATUS_CODE_DATA DataHeader;
+ ///
+ EFI_STATUS_CODE_DATA DataHeader;
///
/// Specifies the format of the data in String.
///
EFI_STRING_TYPE StringType;
///
- /// A pointer to the extended data. The data follows the format specified by
+ /// A pointer to the extended data. The data follows the format specified by
/// StringType.
///
EFI_STATUS_CODE_STRING String;
@@ -118,12 +112,13 @@ extern EFI_GUID gEfiStatusCodeDataTypeStringGuid;
/// - EFI_STATUS_CODE_EXCEP_EXTENDED_DATA
/// - EFI_STATUS_CODE_START_EXTENDED_DATA
/// - EFI_LEGACY_OPROM_EXTENDED_DATA
+/// - EFI_RETURN_STATUS_EXTENDED_DATA
///
#define EFI_STATUS_CODE_SPECIFIC_DATA_GUID \
{ 0x335984bd, 0xe805, 0x409a, { 0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6 } }
///
-/// Extended data about the device path, which is used for many errors and
+/// Extended data about the device path, which is used for many errors and
/// progress codes to point to the device.
///
/// The device path is used to point to the physical device in case there is more than one device
@@ -148,7 +143,7 @@ typedef struct {
///
EFI_STATUS_CODE_DATA DataHeader;
///
- /// The device path to the controller or the hardware device. Note that this parameter is a
+ /// The device path to the controller or the hardware device. Note that this parameter is a
/// variable-length device path structure and not a pointer to such a structure. This structure is
/// populated only if it is a physical device. For virtual devices, the Size field in DataHeader
/// is set to zero and this field is not populated.
@@ -183,7 +178,7 @@ typedef struct {
///
/// This structure defines extended data describing a PCI resource allocation error.
///
-/// @par Note:
+/// @par Note:
/// The following structure contains variable-length fields and cannot be defined as a C-style
/// structure.
///
@@ -209,7 +204,7 @@ typedef struct {
///
/// DevicePathSize should be zero if it is a virtual device that is not associated with
/// a device path. Otherwise, this parameter is the length of the variable-length
- /// DevicePath.
+ /// DevicePath.
///
UINT16 DevicePathSize;
///
@@ -223,9 +218,9 @@ typedef struct {
///
UINT16 AllocResSize;
///
- /// The device path to the controller or the hardware device that did not get the requested
- /// resources. Note that this parameter is the variable-length device path structure and not
- /// a pointer to this structure.
+ /// The device path to the controller or the hardware device that did not get the requested
+ /// resources. Note that this parameter is the variable-length device path structure and not
+ /// a pointer to this structure.
///
// EFI_DEVICE_PATH_PROTOCOL DevicePath;
///
@@ -234,7 +229,7 @@ typedef struct {
///
// UINT8 ReqRes[];
///
- /// The allocated resources in the format of an ACPI 2.0 resource descriptor. This
+ /// The allocated resources in the format of an ACPI 2.0 resource descriptor. This
/// parameter is not a pointer; it is the complete resource descriptor.
///
// UINT8 AllocRes[];
@@ -244,7 +239,7 @@ typedef struct {
/// This structure provides a calculation for base-10 representations.
///
/// Not consistent with PI 1.2 Specification.
-/// This data type is not defined in the PI 1.2 Specification, but is
+/// This data type is not defined in the PI 1.2 Specification, but is
/// required by several of the other data structures in this file.
///
typedef struct {
@@ -253,16 +248,16 @@ typedef struct {
///
INT16 Value;
///
- /// The INT16 number by which to raise the base-2 calculation.
+ /// The INT16 number by which to raise the base-2 calculation.
///
INT16 Exponent;
} EFI_EXP_BASE10_DATA;
///
-/// This structure provides the voltage at the time of error. It also provides
-/// the threshold value indicating the minimum or maximum voltage that is considered
-/// an error. If the voltage is less then the threshold, the error indicates that the
-/// voltage fell below the minimum acceptable value. If the voltage is greater then the threshold,
+/// This structure provides the voltage at the time of error. It also provides
+/// the threshold value indicating the minimum or maximum voltage that is considered
+/// an error. If the voltage is less then the threshold, the error indicates that the
+/// voltage fell below the minimum acceptable value. If the voltage is greater then the threshold,
/// the error indicates that the voltage rose above the maximum acceptable value.
///
typedef struct {
@@ -312,7 +307,7 @@ typedef struct {
/// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be
/// sizeof (EFI_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA) -
/// HeaderSize, and DataHeader.Type should be
- /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
+ /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
///
EFI_STATUS_CODE_DATA DataHeader;
///
@@ -341,11 +336,11 @@ typedef struct {
///
/// This structure defines extended data for processor mismatch errors.
///
-/// This provides information to indicate which processors mismatch, and how they mismatch. The
-/// status code contains the instance number of the processor that is in error. This structure's
-/// Instance indicates the second processor that does not match. This differentiation allows the
-/// consumer to determine which two processors do not match. The Attributes indicate what
-/// mismatch is being reported. Because Attributes is a bit field, more than one mismatch can be
+/// This provides information to indicate which processors mismatch, and how they mismatch. The
+/// status code contains the instance number of the processor that is in error. This structure's
+/// Instance indicates the second processor that does not match. This differentiation allows the
+/// consumer to determine which two processors do not match. The Attributes indicate what
+/// mismatch is being reported. Because Attributes is a bit field, more than one mismatch can be
/// reported with one error code.
///
typedef struct {
@@ -354,23 +349,23 @@ typedef struct {
/// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be
/// sizeof (EFI_ HOST_PROCESSOR_MISMATCH_ERROR_DATA) -
/// HeaderSize , and DataHeader.Type should be
- /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
+ /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
///
EFI_STATUS_CODE_DATA DataHeader;
///
/// The unit number of the computing unit that does not match.
- ///
+ ///
UINT32 Instance;
- ///
- /// The attributes describing the failure.
- ///
+ ///
+ /// The attributes describing the failure.
+ ///
UINT16 Attributes;
} EFI_HOST_PROCESSOR_MISMATCH_ERROR_DATA;
///
/// This structure provides details about the computing unit thermal failure.
///
-/// This structure provides the temperature at the time of error. It also provides the threshold value
+/// This structure provides the temperature at the time of error. It also provides the threshold value
/// indicating the minimum temperature that is considered an error.
///
typedef struct {
@@ -379,7 +374,7 @@ typedef struct {
/// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be
/// sizeof (EFI_COMPUTING_UNIT_THERMAL_ERROR_DATA) -
/// HeaderSize , and DataHeader.Type should be
- /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
+ /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
///
EFI_STATUS_CODE_DATA DataHeader;
///
@@ -429,7 +424,7 @@ typedef struct {
typedef UINT32 EFI_CPU_STATE_CHANGE_CAUSE;
///
-/// The reasons that the processor is disabled.
+/// The reasons that the processor is disabled.
/// Used to fill in EFI_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA.Cause.
///
///@{
@@ -447,8 +442,8 @@ typedef UINT32 EFI_CPU_STATE_CHANGE_CAUSE;
///
/// This structure provides information about the disabled computing unit.
///
-/// This structure provides details as to why and how the computing unit was disabled. The causes
-/// should cover the typical reasons a processor would be disabled. How the processor was disabled is
+/// This structure provides details as to why and how the computing unit was disabled. The causes
+/// should cover the typical reasons a processor would be disabled. How the processor was disabled is
/// important because there are distinct differences between hardware and software disabling.
///
typedef struct {
@@ -461,12 +456,12 @@ typedef struct {
///
EFI_STATUS_CODE_DATA DataHeader;
///
- /// The reason for disabling the processor.
- ///
+ /// The reason for disabling the processor.
+ ///
UINT32 Cause;
///
- /// TRUE if the processor is disabled via software means such as not listing it in the ACPI tables.
- /// Such a processor will respond to Interprocessor Interrupts (IPIs). FALSE if the processor is hardware
+ /// TRUE if the processor is disabled via software means such as not listing it in the ACPI tables.
+ /// Such a processor will respond to Interprocessor Interrupts (IPIs). FALSE if the processor is hardware
/// disabled, which means it is invisible to software and will not respond to IPIs.
///
BOOLEAN SoftwareDisabled;
@@ -504,8 +499,8 @@ typedef UINT8 EFI_MEMORY_ERROR_OPERATION;
///@}
///
-/// This structure provides specific details about the memory error that was detected. It provides
-/// enough information so that consumers can identify the exact failure and provides enough
+/// This structure provides specific details about the memory error that was detected. It provides
+/// enough information so that consumers can identify the exact failure and provides enough
/// information to enable corrective action if necessary.
///
typedef struct {
@@ -513,7 +508,7 @@ typedef struct {
/// The data header identifying the data. DataHeader.HeaderSize should be
/// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be
/// sizeof (EFI_MEMORY_EXTENDED_ERROR_DATA) - HeaderSize, and
- /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
+ /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
///
EFI_STATUS_CODE_DATA DataHeader;
///
@@ -521,18 +516,18 @@ typedef struct {
///
EFI_MEMORY_ERROR_GRANULARITY Granularity;
///
- /// The operation that resulted in the error being detected.
+ /// The operation that resulted in the error being detected.
///
EFI_MEMORY_ERROR_OPERATION Operation;
///
- /// The error syndrome, vendor-specific ECC syndrome, or CRC data associated with
+ /// The error syndrome, vendor-specific ECC syndrome, or CRC data associated with
/// the error. If unknown, should be initialized to 0.
- /// Inconsistent with specification here:
+ /// Inconsistent with specification here:
/// This field in StatusCodes spec0.9 is defined as UINT32, keep code unchanged.
///
UINTN Syndrome;
///
- /// The physical address of the error.
+ /// The physical address of the error.
///
EFI_PHYSICAL_ADDRESS Address;
///
@@ -543,31 +538,31 @@ typedef struct {
///
/// A definition to describe that the operation is performed on multiple devices within the array.
-/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
+/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
///
#define EFI_MULTIPLE_MEMORY_DEVICE_OPERATION 0xfffe
///
/// A definition to describe that the operation is performed on all devices within the array.
-/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
+/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
///
#define EFI_ALL_MEMORY_DEVICE_OPERATION 0xffff
///
/// A definition to describe that the operation is performed on multiple arrays.
-/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
+/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
///
#define EFI_MULTIPLE_MEMORY_ARRAY_OPERATION 0xfffe
///
/// A definition to describe that the operation is performed on all the arrays.
-/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
+/// May be used for EFI_STATUS_CODE_DIMM_NUMBER.Array and EFI_STATUS_CODE_DIMM_NUMBER.Device.
///
#define EFI_ALL_MEMORY_ARRAY_OPERATION 0xffff
///
-/// This extended data provides some context that consumers can use to locate a DIMM within the
-/// overall memory scheme.
+/// This extended data provides some context that consumers can use to locate a DIMM within the
+/// overall memory scheme.
///
/// This extended data provides some context that consumers can use to locate a DIMM within the
/// overall memory scheme. The Array and Device numbers may indicate a specific DIMM, or they
@@ -595,7 +590,7 @@ typedef struct {
/// This structure defines extended data describing memory modules that do not match.
///
/// This extended data may be used to convey the specifics of memory modules that do not match.
-///
+///
typedef struct {
///
/// The data header identifying the data. DataHeader.HeaderSize should be
@@ -606,7 +601,7 @@ typedef struct {
///
EFI_STATUS_CODE_DATA DataHeader;
///
- /// The instance number of the memory module that does not match.
+ /// The instance number of the memory module that does not match.
///
EFI_STATUS_CODE_DIMM_NUMBER Instance;
} EFI_MEMORY_MODULE_MISMATCH_ERROR_DATA;
@@ -614,7 +609,7 @@ typedef struct {
///
/// This structure defines extended data describing a memory range.
///
-/// This extended data may be used to convey the specifics of a memory range. Ranges are specified
+/// This extended data may be used to convey the specifics of a memory range. Ranges are specified
/// with a start address and a length.
///
typedef struct {
@@ -622,11 +617,11 @@ typedef struct {
/// The data header identifying the data. DataHeader.HeaderSize should be
/// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be
/// sizeof (EFI_MEMORY_RANGE_EXTENDED_DATA) - HeaderSize, and
- /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
+ /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
///
EFI_STATUS_CODE_DATA DataHeader;
///
- /// The starting address of the memory range.
+ /// The starting address of the memory range.
///
EFI_PHYSICAL_ADDRESS Start;
///
@@ -647,7 +642,7 @@ typedef struct {
/// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be
/// sizeof (EFI_DEBUG_ASSERT_DATA) - HeaderSize , and
/// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
- ///
+ ///
EFI_STATUS_CODE_DATA DataHeader;
///
/// The line number of the source file where the fault was generated.
@@ -658,7 +653,7 @@ typedef struct {
///
UINT32 FileNameSize;
///
- /// A pointer to a NULL-terminated ASCII or Unicode string that represents
+ /// A pointer to a NULL-terminated ASCII or Unicode string that represents
/// the file name of the source file where the fault was generated.
///
EFI_STATUS_CODE_STRING_DATA *FileName;
@@ -691,7 +686,7 @@ typedef union {
/// EFI_SYSTEM_CONTEXT_X64 is defined in the
/// EFI_DEBUG_SUPPORT_PROTOCOL in the UEFI Specification.
///
- EFI_SYSTEM_CONTEXT_X64 SystemContextX64;
+ EFI_SYSTEM_CONTEXT_X64 SystemContextX64;
///
/// The context of the ARM processor when the exception was generated. Type
/// EFI_SYSTEM_CONTEXT_ARM is defined in the
@@ -713,11 +708,11 @@ typedef struct {
/// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be
/// sizeof (EFI_STATUS_CODE_EXCEP_EXTENDED_DATA) - HeaderSize,
/// and DataHeader.Type should be
- /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
+ /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
///
EFI_STATUS_CODE_DATA DataHeader;
///
- /// The system context.
+ /// The system context.
///
EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;
} EFI_STATUS_CODE_EXCEP_EXTENDED_DATA;
@@ -729,33 +724,33 @@ typedef struct {
/// the UEFI Driver Binding Protocol.
///
typedef struct {
- ///
+ ///
/// The data header identifying the data. DataHeader.HeaderSize should be
/// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be
/// sizeof (EFI_STATUS_CODE_START_EXTENDED_DATA) - HeaderSize,
/// and DataHeader.Type should be
- /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
+ /// EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
///
EFI_STATUS_CODE_DATA DataHeader;
///
- /// The controller handle.
+ /// The controller handle.
///
EFI_HANDLE ControllerHandle;
///
/// The driver binding handle.
///
EFI_HANDLE DriverBindingHandle;
- ///
- /// The size of the RemainingDevicePath. It is zero if the Start() function is
+ ///
+ /// The size of the RemainingDevicePath. It is zero if the Start() function is
/// called with RemainingDevicePath = NULL. The UEFI Specification allows
/// that the Start() function of bus drivers can be called in this way.
///
UINT16 DevicePathSize;
///
- /// Matches the RemainingDevicePath parameter being passed to the Start() function.
- /// Note that this parameter is the variable-length device path and not a pointer
+ /// Matches the RemainingDevicePath parameter being passed to the Start() function.
+ /// Note that this parameter is the variable-length device path and not a pointer
/// to the device path.
- ///
+ ///
// EFI_DEVICE_PATH_PROTOCOL RemainingDevicePath;
} EFI_STATUS_CODE_START_EXTENDED_DATA;
@@ -771,7 +766,7 @@ typedef struct {
/// The data header identifying the data. DataHeader.HeaderSize should be
/// sizeof (EFI_STATUS_CODE_DATA), DataHeader.Size should be
/// sizeof (EFI_LEGACY_OPROM_EXTENDED_DATA) - HeaderSize, and
- /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
+ /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
///
EFI_STATUS_CODE_DATA DataHeader;
///
@@ -779,11 +774,30 @@ typedef struct {
///
EFI_HANDLE DeviceHandle;
///
- /// The base address of the shadowed legacy ROM image. May or may not point to the shadow RAM area.
+ /// The base address of the shadowed legacy ROM image. May or may not point to the shadow RAM area.
///
EFI_PHYSICAL_ADDRESS RomImageBase;
} EFI_LEGACY_OPROM_EXTENDED_DATA;
+///
+/// This structure defines extended data describing an EFI_STATUS return value that stands for a
+/// failed function call (such as a UEFI boot service).
+///
+typedef struct {
+ ///
+ /// The data header identifying the data:
+ /// DataHeader.HeaderSize should be sizeof(EFI_STATUS_CODE_DATA),
+ /// DataHeader.Size should be sizeof(EFI_RETURN_STATUS_EXTENDED_DATA) - HeaderSize,
+ /// DataHeader.Type should be EFI_STATUS_CODE_SPECIFIC_DATA_GUID.
+ ///
+ EFI_STATUS_CODE_DATA DataHeader;
+ ///
+ /// The EFI_STATUS return value of the service or function whose failure triggered the
+ /// reporting of the status code (generally an error code or a debug code).
+ ///
+ EFI_STATUS ReturnStatus;
+} EFI_RETURN_STATUS_EXTENDED_DATA;
+
extern EFI_GUID gEfiStatusCodeSpecificDataGuid;
#endif