X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FInclude%2FLibrary%2FReportStatusCodeLib.h;h=3924fa20e8dcaf5076c407a117c4dc149fa59701;hb=e84fb6ebe76fdf695890db61096f0e71e43b9fd1;hp=6b32ddb1379623d522c3b322b2511f4035f539aa;hpb=fb3df220f89e6eecaf1862b9241d8a1214eeda1c;p=mirror_edk2.git
diff --git a/MdePkg/Include/Library/ReportStatusCodeLib.h b/MdePkg/Include/Library/ReportStatusCodeLib.h
index 6b32ddb137..3924fa20e8 100644
--- a/MdePkg/Include/Library/ReportStatusCodeLib.h
+++ b/MdePkg/Include/Library/ReportStatusCodeLib.h
@@ -1,20 +1,24 @@
/** @file
- Report Status Code Library public .h file
+ Provides services to log status code records.
- Copyright (c) 2006, Intel Corporation
- All rights reserved. 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
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
+This program and the accompanying materials are licensed and made available under
+the terms and conditions of the BSD License that 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.
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef __REPORT_STATUS_CODE_LIB_H__
#define __REPORT_STATUS_CODE_LIB_H__
+#include
+#include
+#include
+
//
// Declare bits for PcdReportStatusCodePropertyMask
//
@@ -22,159 +26,6 @@
#define REPORT_STATUS_CODE_PROPERTY_ERROR_CODE_ENABLED 0x00000002
#define REPORT_STATUS_CODE_PROPERTY_DEBUG_CODE_ENABLED 0x00000004
-//
-// Extended Data structure definitions with EFI_STATUS_CODE_DATA headers removed
-//
-
-///
-/// Voltage Extended Error Data
-///
-typedef struct {
- EFI_EXP_BASE10_DATA Voltage;
- EFI_EXP_BASE10_DATA Threshold;
-} REPORT_STATUS_CODE_LIBRARY_COMPUTING_UNIT_VOLTAGE_ERROR_DATA;
-
-///
-/// Microcode Update Extended Error Data
-///
-typedef struct {
- UINT32 Version;
-} REPORT_STATUS_CODE_LIBRARY_COMPUTING_UNIT_MICROCODE_UPDATE_ERROR_DATA;
-
-///
-/// Asynchronous Timer Extended Error Data
-///
-typedef struct {
- EFI_EXP_BASE10_DATA TimerLimit;
-} REPORT_STATUS_CODE_LIBRARY_COMPUTING_UNIT_TIMER_EXPIRED_ERROR_DATA;
-
-///
-/// Host Processor Mismatch Extended Error Data
-///
-typedef struct {
- UINT32 Instance;
- UINT16 Attributes;
-} REPORT_STATUS_CODE_LIBRARY_HOST_PROCESSOR_MISMATCH_ERROR_DATA;
-
-///
-/// Thermal Extended Error Data
-///
-typedef struct {
- EFI_EXP_BASE10_DATA Temperature;
- EFI_EXP_BASE10_DATA Threshold;
-} REPORT_STATUS_CODE_LIBRARY_COMPUTING_UNIT_THERMAL_ERROR_DATA;
-
-///
-/// Processor Disabled Extended Error Data
-///
-typedef struct {
- UINT32 Cause;
- BOOLEAN SoftwareDisabled;
-} REPORT_STATUS_CODE_LIBRARY_COMPUTING_UNIT_CPU_DISABLED_ERROR_DATA;
-
-///
-/// Embedded cache init extended data
-///
-typedef struct {
- UINT32 Level;
- EFI_INIT_CACHE_TYPE Type;
-} REPORT_STATUS_CODE_LIBRARY_CACHE_INIT_DATA;
-
-///
-/// Memory Extended Error Data
-///
-typedef struct {
- EFI_MEMORY_ERROR_GRANULARITY Granularity;
- EFI_MEMORY_ERROR_OPERATION Operation;
- UINTN Syndrome;
- EFI_PHYSICAL_ADDRESS Address;
- UINTN Resolution;
-} REPORT_STATUS_CODE_LIBRARY_MEMORY_EXTENDED_ERROR_DATA;
-
-///
-/// DIMM number
-///
-typedef struct {
- UINT16 Array;
- UINT16 Device;
-} REPORT_STATUS_CODE_LIBRARY_STATUS_CODE_DIMM_NUMBER;
-
-///
-/// Memory Module Mismatch Extended Error Data
-///
-typedef struct {
- EFI_STATUS_CODE_DIMM_NUMBER Instance;
-} REPORT_STATUS_CODE_LIBRARY_MEMORY_MODULE_MISMATCH_ERROR_DATA;
-
-///
-/// Memory Range Extended Data
-///
-typedef struct {
- EFI_PHYSICAL_ADDRESS Start;
- EFI_PHYSICAL_ADDRESS Length;
-} REPORT_STATUS_CODE_LIBRARY_MEMORY_RANGE_EXTENDED_DATA;
-
-///
-/// Device handle Extended Data. Used for many
-/// errors and progress codes to point to the device.
-///
-typedef struct {
- EFI_HANDLE Handle;
-} REPORT_STATUS_CODE_LIBRARY_DEVICE_HANDLE_EXTENDED_DATA;
-
-typedef struct {
- UINT8 *DevicePath;
-} REPORT_STATUS_CODE_LIBRARY_DEVICE_PATH_EXTENDED_DATA;
-
-typedef struct {
- EFI_HANDLE ControllerHandle;
- EFI_HANDLE DriverBindingHandle;
- UINT16 DevicePathSize;
- UINT8 *RemainingDevicePath;
-} REPORT_STATUS_CODE_LIBRARY_STATUS_CODE_START_EXTENDED_DATA;
-
-///
-/// Resource Allocation Failure Extended Error Data
-///
-typedef struct {
- UINT32 Bar;
- UINT16 DevicePathSize;
- UINT16 ReqResSize;
- UINT16 AllocResSize;
- UINT8 *DevicePath;
- UINT8 *ReqRes;
- UINT8 *AllocRes;
-} REPORT_STATUS_CODE_LIBRARY_RESOURCE_ALLOC_FAILURE_ERROR_DATA;
-
-///
-/// Extended Error Data for Assert
-///
-typedef struct {
- UINT32 LineNumber;
- UINT32 FileNameSize;
- EFI_STATUS_CODE_STRING_DATA *FileName;
-} REPORT_STATUS_CODE_LIBRARY_DEBUG_ASSERT_DATA;
-
-///
-/// System Context Data EBC/IA32/IPF
-///
-typedef struct {
- EFI_STATUS_CODE_EXCEP_SYSTEM_CONTEXT Context;
-} REPORT_STATUS_CODE_LIBRARY_STATUS_CODE_EXCEP_EXTENDED_DATA;
-
-///
-/// Legacy Oprom extended data
-///
-typedef struct {
- EFI_HANDLE DeviceHandle;
- EFI_PHYSICAL_ADDRESS RomImageBase;
-} REPORT_STATUS_CODE_LIBRARY_LEGACY_OPROM_EXTENDED_DATA;
-
-//
-// Extern for the modules Caller ID GUID
-//
-extern EFI_GUID gEfiCallerIdGuid;
-
/**
Converts a status code to an 8-bit POST code value.
@@ -191,7 +42,7 @@ extern EFI_GUID gEfiCallerIdGuid;
@param PostCode A pointer to the 8-bit POST code value to return.
@retval TRUE The status code specified by CodeType and Value was converted
- to an 8-bit POST code and returned in PostCode.
+ to an 8-bit POST code and returned in PostCode.
@retval FALSE The status code specified by CodeType and Value could not be
converted to an 8-bit POST code value.
@@ -226,10 +77,10 @@ CodeTypeToPostCode (
@param CodeType The type of status code being converted.
@param Value The status code value being converted.
- @param Data Pointer to status code data buffer.
- @param Filename Pointer to the source file name that generated the ASSERT().
- @param Description Pointer to the description of the ASSERT().
- @param LineNumber Pointer to source line number that generated the ASSERT().
+ @param Data The pointer to status code data buffer.
+ @param Filename The pointer to the source file name that generated the ASSERT().
+ @param Description The pointer to the description of the ASSERT().
+ @param LineNumber The pointer to source line number that generated the ASSERT().
@retval TRUE The status code specified by CodeType, Value, and Data was
converted ASSERT() arguments specified by Filename, Description,
@@ -267,10 +118,10 @@ ReportStatusCodeExtractAssertInfo (
If Marker is NULL, then ASSERT().
If Format is NULL, then ASSERT().
- @param Data Pointer to status code data buffer.
- @param ErrorLevel Pointer to error level mask for a debug message.
- @param Marker Pointer to the variable argument list associated with Format.
- @param Format Pointer to a Null-terminated ASCII format string of a
+ @param Data The pointer to status code data buffer.
+ @param ErrorLevel The pointer to error level mask for a debug message.
+ @param Marker The pointer to the variable argument list associated with Format.
+ @param Format The pointer to a Null-terminated ASCII format string of a
debug message.
@retval TRUE The status code specified by Data was converted DEBUG() arguments
@@ -284,7 +135,7 @@ EFIAPI
ReportStatusCodeExtractDebugInfo (
IN CONST EFI_STATUS_CODE_DATA *Data,
OUT UINT32 *ErrorLevel,
- OUT VA_LIST *Marker,
+ OUT BASE_LIST *Marker,
OUT CHAR8 **Format
);
@@ -297,7 +148,7 @@ ReportStatusCodeExtractDebugInfo (
passed in a zero instance, NULL extended data, and a caller ID of
gEfiCallerIdGuid, which is the GUID for the module.
- ReportStatusCode()must actively prevent recusrsion. If ReportStatusCode()
+ ReportStatusCode()must actively prevent recursion. If ReportStatusCode()
is called while processing another any other Report Status Code Library function,
then ReportStatusCode() must return immediately.
@@ -307,7 +158,7 @@ ReportStatusCodeExtractDebugInfo (
@retval EFI_SUCCESS The status code was reported.
@retval EFI_DEVICE_ERROR There status code could not be reported due to a
device error.
- @retval EFI_UNSUPPORTED Report status code is not supported
+ @retval EFI_UNSUPPORTED The report status code is not supported.
**/
EFI_STATUS
@@ -324,9 +175,8 @@ ReportStatusCode (
Allocates and fills in the extended data section of a status code with the
Device Path Protocol specified by DevicePath. This function is responsible
for allocating a buffer large enough for the standard header and the device
- path. The standard header is filled in with a GUID of
- gEfiStatusCodeSpecificDataGuid. The status code is reported with a zero
- instance and a caller ID of gEfiCallerIdGuid.
+ path. The standard header is filled in with an implementation dependent GUID.
+ The status code is reported with a zero instance and a caller ID of gEfiCallerIdGuid.
ReportStatusCodeWithDevicePath()must actively prevent recursion. If
ReportStatusCodeWithDevicePath() is called while processing another any other
@@ -335,15 +185,17 @@ ReportStatusCode (
If DevicePath is NULL, then ASSERT().
- @param Type Status code type.
- @param Value Status code value.
- @param DevicePath Pointer to the Device Path Protocol to be reported.
+ @param Type The status code type.
+ @param Value The status code value.
+ @param DevicePath The pointer to the Device Path Protocol to be reported.
@retval EFI_SUCCESS The status code was reported with the extended
data specified by DevicePath.
@retval EFI_OUT_OF_RESOURCES There were not enough resources to allocate the
extended data section.
- @retval EFI_UNSUPPORTED Report status code is not supported
+ @retval EFI_UNSUPPORTED The report status code is not supported.
+ @retval EFI_DEVICE_ERROR A call to a Report Status Code Library function
+ is already in progress.
**/
EFI_STATUS
@@ -364,7 +216,7 @@ ReportStatusCodeWithDevicePath (
These data structure do not have the standard header, so this function is
responsible for allocating a buffer large enough for the standard header and
the extended data passed into this function. The standard header is filled
- in with a GUID of gEfiStatusCodeSpecificDataGuid. The status code is reported
+ in with an implementation dependent GUID. The status code is reported
with a zero instance and a caller ID of gEfiCallerIdGuid.
ReportStatusCodeWithExtendedData()must actively prevent recursion. If
@@ -375,9 +227,9 @@ ReportStatusCodeWithDevicePath (
If ExtendedData is NULL, then ASSERT().
If ExtendedDataSize is 0, then ASSERT().
- @param Type Status code type.
- @param Value Status code value.
- @param ExtendedData Pointer to the extended data buffer to be reported.
+ @param Type The status code type.
+ @param Value The status code value.
+ @param ExtendedData The pointer to the extended data buffer to be reported.
@param ExtendedDataSize The size, in bytes, of the extended data buffer to
be reported.
@@ -385,7 +237,9 @@ ReportStatusCodeWithDevicePath (
data specified by ExtendedData and ExtendedDataSize.
@retval EFI_OUT_OF_RESOURCES There were not enough resources to allocate the
extended data section.
- @retval EFI_UNSUPPORTED Report status code is not supported
+ @retval EFI_UNSUPPORTED The report status code is not supported.
+ @retval EFI_DEVICE_ERROR A call to a Report Status Code Library function
+ is already in progress.
**/
EFI_STATUS
@@ -408,7 +262,7 @@ ReportStatusCodeWithExtendedData (
is responsible for allocating a buffer large enough for the standard header and
the extended data passed into this function. The standard header is filled in
with a GUID specified by ExtendedDataGuid. If ExtendedDataGuid is NULL, then a
- GUID of gEfiStatusCodeSpecificDatauid is used. The status code is reported with
+ GUID of gEfiStatusCodeSpecificDataGuid is used. The status code is reported with
an instance specified by Instance and a caller ID specified by CallerId. If
CallerId is NULL, then a caller ID of gEfiCallerIdGuid is used.
@@ -419,24 +273,25 @@ ReportStatusCodeWithExtendedData (
If ExtendedData is NULL and ExtendedDataSize is not zero, then ASSERT().
If ExtendedData is not NULL and ExtendedDataSize is zero, then ASSERT().
- @param Type Status code type.
- @param Value Status code value.
- @param Instance Status code instance number.
- @param CallerId Pointer to a GUID that identifies the caller of this
+ @param Type The status code type.
+ @param Value The status code value.
+ @param Instance The status code instance number.
+ @param CallerId The pointer to a GUID that identifies the caller of this
function. If this parameter is NULL, then a caller
ID of gEfiCallerIdGuid is used.
- @param ExtendedDataGuid Pointer to the GUID for the extended data buffer.
+ @param ExtendedDataGuid The pointer to the GUID for the extended data buffer.
If this parameter is NULL, then a the status code
- standard header is filled in with
- gEfiStatusCodeSpecificDataGuid.
- @param ExtendedData Pointer to the extended data buffer. This is an
+ standard header is filled in with an implementation dependent GUID.
+ @param ExtendedData The pointer to the extended data buffer. This is an
optional parameter that may be NULL.
@param ExtendedDataSize The size, in bytes, of the extended data buffer.
@retval EFI_SUCCESS The status code was reported.
@retval EFI_OUT_OF_RESOURCES There were not enough resources to allocate
the extended data section if it was specified.
- @retval EFI_UNSUPPORTED Report status code is not supported
+ @retval EFI_UNSUPPORTED The report status code is not supported.
+ @retval EFI_DEVICE_ERROR A call to a Report Status Code Library function
+ is already in progress.
**/
EFI_STATUS
@@ -475,7 +330,7 @@ ReportProgressCodeEnabled (
Returns TRUE if status codes of type EFI_ERROR_CODE are enabled
This function returns TRUE if the REPORT_STATUS_CODE_PROPERTY_ERROR_CODE_ENABLED
- bit of PcdReportStatusCodeProperyMask is set. Otherwise FALSE is returned.
+ bit of PcdReportStatusCodeProperyMask is set. Otherwise, FALSE is returned.
@retval TRUE The REPORT_STATUS_CODE_PROPERTY_ERROR_CODE_ENABLED bit of
PcdReportStatusCodeProperyMask is set.
@@ -516,12 +371,12 @@ ReportDebugCodeEnabled (
PcdReportStatusCodeProperyMask, then call ReportStatusCode() passing in Type
and Value.
- @param Type Status code type.
- @param Value Status code value.
+ @param Type The status code type.
+ @param Value The status code value.
@retval EFI_SUCCESS The status code was reported.
@retval EFI_DEVICE_ERROR There status code could not be reported due to a device error.
- @retval EFI_UNSUPPORTED Report status code is not supported
+ @retval EFI_UNSUPPORTED Report status code is not supported.
**/
#define REPORT_STATUS_CODE(Type,Value) \
@@ -542,15 +397,17 @@ ReportDebugCodeEnabled (
PcdReportStatusCodeProperyMask, then call ReportStatusCodeWithDevicePath()
passing in Type, Value, and DevicePath.
- @param Type Status code type.
- @param Value Status code value.
+ @param Type The status code type.
+ @param Value The status code value.
@param DevicePath Pointer to the Device Path Protocol to be reported.
@retval EFI_SUCCESS The status code was reported with the extended
data specified by DevicePath.
@retval EFI_OUT_OF_RESOURCES There were not enough resources to allocate the
extended data section.
- @retval EFI_UNSUPPORTED Report status code is not supported
+ @retval EFI_UNSUPPORTED The report status code is not supported.
+ @retval EFI_DEVICE_ERROR A call to a Report Status Code Library function
+ is already in progress.
**/
#define REPORT_STATUS_CODE_WITH_DEVICE_PATH(Type,Value,DevicePathParameter) \
@@ -571,9 +428,9 @@ ReportDebugCodeEnabled (
PcdReportStatusCodeProperyMask, then call ReportStatusCodeWithExtendedData()
passing in Type, Value, ExtendedData, and ExtendedDataSize.
- @param Type Status code type.
- @param Value Status code value.
- @param ExtendedData Pointer to the extended data buffer to be reported.
+ @param Type The status code type.
+ @param Value The status code value.
+ @param ExtendedData The pointer to the extended data buffer to be reported.
@param ExtendedDataSize The size, in bytes, of the extended data buffer to
be reported.
@@ -581,7 +438,9 @@ ReportDebugCodeEnabled (
data specified by ExtendedData and ExtendedDataSize.
@retval EFI_OUT_OF_RESOURCES There were not enough resources to allocate the
extended data section.
- @retval EFI_UNSUPPORTED Report status code is not supported
+ @retval EFI_UNSUPPORTED The report status code is not supported.
+ @retval EFI_DEVICE_ERROR A call to a Report Status Code Library function
+ is already in progress.
**/
#define REPORT_STATUS_CODE_WITH_EXTENDED_DATA(Type,Value,ExtendedData,ExtendedDataSize) \
@@ -600,16 +459,15 @@ ReportDebugCodeEnabled (
PcdReportStatusCodeProperyMask, then call ReportStatusCodeEx() passing in Type,
Value, Instance, CallerId, ExtendedDataGuid, ExtendedData, and ExtendedDataSize.
- @param Type Status code type.
- @param Value Status code value.
- @param Instance Status code instance number.
- @param CallerId Pointer to a GUID that identifies the caller of this
+ @param Type The status code type.
+ @param Value The status code value.
+ @param Instance The status code instance number.
+ @param CallerId The pointer to a GUID that identifies the caller of this
function. If this parameter is NULL, then a caller
ID of gEfiCallerIdGuid is used.
@param ExtendedDataGuid Pointer to the GUID for the extended data buffer.
If this parameter is NULL, then a the status code
- standard header is filled in with
- gEfiStatusCodeSpecificDataGuid.
+ standard header is filled in with an implementation dependent GUID.
@param ExtendedData Pointer to the extended data buffer. This is an
optional parameter that may be NULL.
@param ExtendedDataSize The size, in bytes, of the extended data buffer.
@@ -617,7 +475,9 @@ ReportDebugCodeEnabled (
@retval EFI_SUCCESS The status code was reported.
@retval EFI_OUT_OF_RESOURCES There were not enough resources to allocate the
extended data section if it was specified.
- @retval EFI_UNSUPPORTED Report status code is not supported
+ @retval EFI_UNSUPPORTED The report status code is not supported.
+ @retval EFI_DEVICE_ERROR A call to a Report Status Code Library function
+ is already in progress.
**/
#define REPORT_STATUS_CODE_EX(Type,Value,Instance,CallerId,ExtendedDataGuid,ExtendedData,ExtendedDataSize) \