From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.13026.1688611717343975463 for ; Wed, 05 Jul 2023 19:48:43 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Q6kSvSeY; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: isaac.w.oram@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1688611723; x=1720147723; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=hiWumhM8086pB0bJq63aPjDyPn0BDLV7j4UW498LnMk=; b=Q6kSvSeYxjGHYrSVZexn1jytghleHK41QL60eArmB5dmSoSD3ZAz15kx h2saQmXkLnTLJ8/r9bpbTKXINCRpKuM9Vq4K/oMAonC5LVUgSBrPgF86u 7w29aSPW0IfCiHHF8BVyWwU3PhLjcJAHjnx53WJdETRO3YQ31yzq0zmCX L9A80SgnDI8hWfl1mWEcJsZNxwImOXDRs7pCEIp7Njy6nbbxUbpL4ZTjv J7b83T6nbAizL4Jxu/TBMIGFBUg/a+E/VYacYqjMOggk+peUfsUDASSC4 VwCRlf/XY5nWtdQdbCC1w+P0Q/E2cdtIGYb0gk3JgH0cFclk9Bfk+zOtB Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10762"; a="429534708" X-IronPort-AV: E=Sophos;i="6.01,184,1684825200"; d="scan'208";a="429534708" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jul 2023 19:48:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10762"; a="832779399" X-IronPort-AV: E=Sophos;i="6.01,184,1684825200"; d="scan'208";a="832779399" Received: from fid-iworam.amr.corp.intel.com ([10.54.76.158]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jul 2023 19:48:42 -0700 From: "Isaac Oram" To: devel@edk2.groups.io Cc: Isaac Oram , Michael D Kinney , Liming Gao , Zhiguang Liu Subject: [PATCH 3/3] MdePkg/ReportStatusCodeLib: Add macros to identify status codes Date: Wed, 5 Jul 2023 19:48:17 -0700 Message-Id: <853fbda72e07356a1e3691373156c4ac4f18b0d6.1688611420.git.isaac.w.oram@intel.com> X-Mailer: git-send-email 2.40.0.windows.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Add macros that make it easier to determine if a status code is an error, progress, or debug code. Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Signed-off-by: Isaac Oram --- .../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