Add macros that make it easier to determine if a status code is an error, progress, or debug code.
Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Liming Gao <gaolim...@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang....@intel.com> Signed-off-by: Isaac Oram <isaac.w.o...@intel.com> --- .../Include/Guid/MemoryStatusCodeRecord.h | 2 +- MdePkg/Include/Library/ReportStatusCodeLib.h | 61 +++++++++++-------- 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h b/MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h index a924c592c9..5e01600891 100644 --- a/MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h +++ b/MdeModulePkg/Include/Guid/MemoryStatusCodeRecord.h @@ -56,7 +56,7 @@ typedef struct { /// typedef struct { /// - /// The index pointing to the last recored being stored. + /// The index pointing to the last record being stored. /// UINT32 RecordIndex; /// diff --git a/MdePkg/Include/Library/ReportStatusCodeLib.h b/MdePkg/Include/Library/ReportStatusCodeLib.h index 3763e69928..4b6647d91d 100644 --- a/MdePkg/Include/Library/ReportStatusCodeLib.h +++ b/MdePkg/Include/Library/ReportStatusCodeLib.h @@ -20,6 +20,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #define REPORT_STATUS_CODE_PROPERTY_ERROR_CODE_ENABLED 0x00000002 #define REPORT_STATUS_CODE_PROPERTY_DEBUG_CODE_ENABLED 0x00000004 +// +// Helpers for parsing status codes +// +#define IS_ERROR_STATUS_CODE(Type) (((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) +#define IS_PROGRESS_STATUS_CODE(Type) (((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) +#define IS_DEBUG_STATUS_CODE(Type) (((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) + /** Converts a status code to an 8-bit POST code value. @@ -363,13 +370,13 @@ ReportDebugCodeEnabled ( @retval EFI_UNSUPPORTED Report status code is not supported. **/ -#define REPORT_STATUS_CODE(Type, Value) \ - (ReportProgressCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) ? \ - ReportStatusCode(Type,Value) : \ - (ReportErrorCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) ? \ - ReportStatusCode(Type,Value) : \ - (ReportDebugCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) ? \ - ReportStatusCode(Type,Value) : \ +#define REPORT_STATUS_CODE(Type, Value) \ + (ReportProgressCodeEnabled () && IS_PROGRESS_STATUS_CODE (Type)) ? \ + ReportStatusCode (Type, Value) : \ + (ReportErrorCodeEnabled () && IS_ERROR_STATUS_CODE (Type)) ? \ + ReportStatusCode (Type, Value) : \ + (ReportDebugCodeEnabled () && IS_DEBUG_STATUS_CODE (Type)) ? \ + ReportStatusCode (Type, Value) : \ EFI_UNSUPPORTED /** @@ -393,13 +400,13 @@ ReportDebugCodeEnabled ( is already in progress. **/ -#define REPORT_STATUS_CODE_WITH_DEVICE_PATH(Type, Value, DevicePathParameter) \ - (ReportProgressCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) ? \ - ReportStatusCodeWithDevicePath(Type,Value,DevicePathParameter) : \ - (ReportErrorCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) ? \ - ReportStatusCodeWithDevicePath(Type,Value,DevicePathParameter) : \ - (ReportDebugCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) ? \ - ReportStatusCodeWithDevicePath(Type,Value,DevicePathParameter) : \ +#define REPORT_STATUS_CODE_WITH_DEVICE_PATH(Type, Value, DevicePathParameter) \ + (ReportProgressCodeEnabled () && IS_PROGRESS_STATUS_CODE (Type)) ? \ + ReportStatusCodeWithDevicePath (Type, Value, DevicePathParameter) : \ + (ReportErrorCodeEnabled () && IS_ERROR_STATUS_CODE (Type)) ? \ + ReportStatusCodeWithDevicePath (Type, Value, DevicePathParameter) : \ + (ReportDebugCodeEnabled () && IS_DEBUG_STATUS_CODE (Type)) ? \ + ReportStatusCodeWithDevicePath (Type, Value, DevicePathParameter) : \ EFI_UNSUPPORTED /** @@ -425,13 +432,13 @@ ReportDebugCodeEnabled ( is already in progress. **/ -#define REPORT_STATUS_CODE_WITH_EXTENDED_DATA(Type, Value, ExtendedData, ExtendedDataSize) \ - (ReportProgressCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) ? \ - ReportStatusCodeWithExtendedData(Type,Value,ExtendedData,ExtendedDataSize) : \ - (ReportErrorCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) ? \ - ReportStatusCodeWithExtendedData(Type,Value,ExtendedData,ExtendedDataSize) : \ - (ReportDebugCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) ? \ - ReportStatusCodeWithExtendedData(Type,Value,ExtendedData,ExtendedDataSize) : \ +#define REPORT_STATUS_CODE_WITH_EXTENDED_DATA(Type, Value, ExtendedData, ExtendedDataSize) \ + (ReportProgressCodeEnabled () && IS_PROGRESS_STATUS_CODE (Type)) ? \ + ReportStatusCodeWithExtendedData (Type, Value, ExtendedData, ExtendedDataSize) : \ + (ReportErrorCodeEnabled () && IS_ERROR_STATUS_CODE (Type)) ? \ + ReportStatusCodeWithExtendedData (Type, Value, ExtendedData, ExtendedDataSize) : \ + (ReportDebugCodeEnabled () && IS_DEBUG_STATUS_CODE (Type)) ? \ + ReportStatusCodeWithExtendedData (Type, Value, ExtendedData, ExtendedDataSize) : \ EFI_UNSUPPORTED /** @@ -463,12 +470,12 @@ ReportDebugCodeEnabled ( **/ #define REPORT_STATUS_CODE_EX(Type, Value, Instance, CallerId, ExtendedDataGuid, ExtendedData, ExtendedDataSize) \ - (ReportProgressCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) ? \ - ReportStatusCodeEx(Type,Value,Instance,CallerId,ExtendedDataGuid,ExtendedData,ExtendedDataSize) : \ - (ReportErrorCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) ? \ - ReportStatusCodeEx(Type,Value,Instance,CallerId,ExtendedDataGuid,ExtendedData,ExtendedDataSize) : \ - (ReportDebugCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) ? \ - ReportStatusCodeEx(Type,Value,Instance,CallerId,ExtendedDataGuid,ExtendedData,ExtendedDataSize) : \ + (ReportProgressCodeEnabled () && IS_PROGRESS_STATUS_CODE (Type)) ? \ + ReportStatusCodeEx (Type, Value, Instance, CallerId, ExtendedDataGuid, ExtendedData, ExtendedDataSize) : \ + (ReportErrorCodeEnabled () && IS_ERROR_STATUS_CODE (Type)) ? \ + ReportStatusCodeEx (Type, Value, Instance, CallerId, ExtendedDataGuid, ExtendedData, ExtendedDataSize) : \ + (ReportDebugCodeEnabled () && IS_DEBUG_STATUS_CODE (Type)) ? \ + ReportStatusCodeEx (Type, Value, Instance, CallerId, ExtendedDataGuid, ExtendedData, ExtendedDataSize) : \ EFI_UNSUPPORTED #endif -- 2.40.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#106674): https://edk2.groups.io/g/devel/message/106674 Mute This Topic: https://groups.io/mt/99978821/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-