From 15cd6a822c3b96cc3d5e12d4ec271b686e7d0bd8 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Mon, 23 Feb 2009 14:31:09 +0000 Subject: Add conditional check before output status code. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7603 6f19259b-4bc3-4df7-8a09-765794883524 --- .../PeiReportStatusCodeLib/ReportStatusCodeLib.c | 34 +++++++++++++--------- 1 file changed, 20 insertions(+), 14 deletions(-) (limited to 'IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c') diff --git a/IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c b/IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c index f39f36d6b6..d027dc4a8e 100644 --- a/IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c +++ b/IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c @@ -67,22 +67,28 @@ InternalReportStatusCode ( CONST EFI_PEI_SERVICES **PeiServices; EFI_STATUS Status; - PeiServices = GetPeiServicesTablePointer (); - Status = (*PeiServices)->ReportStatusCode ( - PeiServices, - Type, - Value, - Instance, - (EFI_GUID *)CallerId, - Data - ); - if (Status == EFI_NOT_AVAILABLE_YET) { - Status = OemHookStatusCodeInitialize (); - if (!EFI_ERROR (Status)) { - return OemHookStatusCodeReport (Type, Value, Instance, (EFI_GUID *) CallerId, Data); + if ((ReportProgressCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) || + (ReportErrorCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) || + (ReportDebugCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE)) { + PeiServices = GetPeiServicesTablePointer (); + Status = (*PeiServices)->ReportStatusCode ( + PeiServices, + Type, + Value, + Instance, + (EFI_GUID *)CallerId, + Data + ); + if (Status == EFI_NOT_AVAILABLE_YET) { + Status = OemHookStatusCodeInitialize (); + if (!EFI_ERROR (Status)) { + return OemHookStatusCodeReport (Type, Value, Instance, (EFI_GUID *) CallerId, Data); + } } + return Status; } - return Status; + + return EFI_UNSUPPORTED; } -- cgit v1.2.3