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) \