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
This commit is contained in:
lgao4
2009-02-23 14:31:09 +00:00
parent 1d0cab2ec2
commit 15cd6a822c
2 changed files with 39 additions and 27 deletions

View File

@ -48,22 +48,28 @@ InternalReportStatusCode (
IN EFI_STATUS_CODE_DATA *Data OPTIONAL
)
{
//
// If gStatusCode is NULL, then see if a Status Code Protocol instance is present
// in the handle database.
//
if (mReportStatusCode == NULL) {
mReportStatusCode = InternalGetReportStatusCode ();
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)) {
//
// If gStatusCode is NULL, then see if a Status Code Protocol instance is present
// in the handle database.
//
if (mReportStatusCode == NULL) {
return EFI_UNSUPPORTED;
mReportStatusCode = InternalGetReportStatusCode ();
if (mReportStatusCode == NULL) {
return EFI_UNSUPPORTED;
}
}
//
// A Status Code Protocol is present in the handle database, so pass in all the
// parameters to the ReportStatusCode() service of the Status Code Protocol
//
return (*mReportStatusCode) (Type, Value, Instance, (EFI_GUID *)CallerId, Data);
}
//
// A Status Code Protocol is present in the handle database, so pass in all the
// parameters to the ReportStatusCode() service of the Status Code Protocol
//
return (*mReportStatusCode) (Type, Value, Instance, (EFI_GUID *)CallerId, Data);
return EFI_UNSUPPORTED;
}