Add more checks for Dxe Report status code library to access boot service.
Add measure to GPT boot table. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7846 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -30,7 +30,7 @@ InternalGetReportStatusCode (
|
|||||||
|
|
||||||
if (gRT->Hdr.Revision < 0x20000) {
|
if (gRT->Hdr.Revision < 0x20000) {
|
||||||
return ((FRAMEWORK_EFI_RUNTIME_SERVICES*)gRT)->ReportStatusCode;
|
return ((FRAMEWORK_EFI_RUNTIME_SERVICES*)gRT)->ReportStatusCode;
|
||||||
} else if (gBS != NULL) {
|
} else if (gBS != NULL && gBS->LocateProtocol != NULL) {
|
||||||
Status = gBS->LocateProtocol (&gEfiStatusCodeRuntimeProtocolGuid, NULL, (VOID**)&StatusCodeProtocol);
|
Status = gBS->LocateProtocol (&gEfiStatusCodeRuntimeProtocolGuid, NULL, (VOID**)&StatusCodeProtocol);
|
||||||
if (!EFI_ERROR (Status) && StatusCodeProtocol != NULL) {
|
if (!EFI_ERROR (Status) && StatusCodeProtocol != NULL) {
|
||||||
return StatusCodeProtocol->ReportStatusCode;
|
return StatusCodeProtocol->ReportStatusCode;
|
||||||
@ -99,7 +99,7 @@ InternalReportStatusCodeEx (
|
|||||||
ASSERT (!((ExtendedData == NULL) && (ExtendedDataSize != 0)));
|
ASSERT (!((ExtendedData == NULL) && (ExtendedDataSize != 0)));
|
||||||
ASSERT (!((ExtendedData != NULL) && (ExtendedDataSize == 0)));
|
ASSERT (!((ExtendedData != NULL) && (ExtendedDataSize == 0)));
|
||||||
|
|
||||||
if (gBS == NULL) {
|
if (gBS == NULL || gBS->AllocatePool == NULL || gBS->FreePool == NULL) {
|
||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,6 +146,7 @@ BdsLibBootViaBootOption (
|
|||||||
EFI_DEVICE_PATH_PROTOCOL *WorkingDevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *WorkingDevicePath;
|
||||||
EFI_ACPI_S3_SAVE_PROTOCOL *AcpiS3Save;
|
EFI_ACPI_S3_SAVE_PROTOCOL *AcpiS3Save;
|
||||||
LIST_ENTRY TempBootLists;
|
LIST_ENTRY TempBootLists;
|
||||||
|
EFI_SECURITY_ARCH_PROTOCOL *SecurityProtocol;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Record the performance data for End of BDS
|
// Record the performance data for End of BDS
|
||||||
@ -241,6 +242,18 @@ BdsLibBootViaBootOption (
|
|||||||
DevicePath = Option->DevicePath;
|
DevicePath = Option->DevicePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Measure GPT Table by SAP protocol.
|
||||||
|
//
|
||||||
|
Status = gBS->LocateProtocol (
|
||||||
|
&gEfiSecurityArchProtocolGuid,
|
||||||
|
NULL,
|
||||||
|
&SecurityProtocol
|
||||||
|
);
|
||||||
|
if (!EFI_ERROR (Status)) {
|
||||||
|
Status = SecurityProtocol->FileAuthenticationState (SecurityProtocol, 0, DevicePath);
|
||||||
|
}
|
||||||
|
|
||||||
DEBUG ((DEBUG_INFO | DEBUG_LOAD, "Booting %S\n", Option->Description));
|
DEBUG ((DEBUG_INFO | DEBUG_LOAD, "Booting %S\n", Option->Description));
|
||||||
|
|
||||||
Status = gBS->LoadImage (
|
Status = gBS->LoadImage (
|
||||||
|
@ -108,6 +108,7 @@
|
|||||||
gEfiConsoleControlProtocolGuid # PROTOCOL CONSUMES
|
gEfiConsoleControlProtocolGuid # PROTOCOL CONSUMES
|
||||||
gEfiOEMBadgingProtocolGuid # PROTOCOL CONSUMES
|
gEfiOEMBadgingProtocolGuid # PROTOCOL CONSUMES
|
||||||
gEfiHiiFontProtocolGuid # PROTOCOL CONSUMES
|
gEfiHiiFontProtocolGuid # PROTOCOL CONSUMES
|
||||||
|
gEfiSecurityArchProtocolGuid
|
||||||
|
|
||||||
[FeaturePcd.common]
|
[FeaturePcd.common]
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
|
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
|
||||||
|
@ -39,6 +39,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#include <Protocol/UgaDraw.h>
|
#include <Protocol/UgaDraw.h>
|
||||||
#include <Protocol/HiiFont.h>
|
#include <Protocol/HiiFont.h>
|
||||||
#include <Protocol/HiiImage.h>
|
#include <Protocol/HiiImage.h>
|
||||||
|
#include <Protocol/Security.h>
|
||||||
|
|
||||||
#include <Guid/MemoryTypeInformation.h>
|
#include <Guid/MemoryTypeInformation.h>
|
||||||
#include <Guid/FileInfo.h>
|
#include <Guid/FileInfo.h>
|
||||||
|
Reference in New Issue
Block a user