diff options
author | lgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-03-10 07:54:11 +0000 |
---|---|---|
committer | lgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524> | 2009-03-10 07:54:11 +0000 |
commit | 07d97279a370e6e66dc1ae9b848fbd5f4eca202e (patch) | |
tree | 30fd4a9711228e15d4e97607a907c2539aa6657b /IntelFrameworkModulePkg/Library | |
parent | 9d3dae39117064bba3d383a42463e931609c34e8 (diff) | |
download | edk2-platforms-07d97279a370e6e66dc1ae9b848fbd5f4eca202e.tar.xz |
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
Diffstat (limited to 'IntelFrameworkModulePkg/Library')
4 files changed, 17 insertions, 2 deletions
diff --git a/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c b/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c index 42f7699e22..602e42b182 100644 --- a/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c +++ b/IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c @@ -30,7 +30,7 @@ InternalGetReportStatusCode ( if (gRT->Hdr.Revision < 0x20000) {
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);
if (!EFI_ERROR (Status) && StatusCodeProtocol != NULL) {
return StatusCodeProtocol->ReportStatusCode;
@@ -99,7 +99,7 @@ InternalReportStatusCodeEx ( 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;
}
diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c index df8be070e7..0cb21c1692 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c @@ -146,6 +146,7 @@ BdsLibBootViaBootOption ( EFI_DEVICE_PATH_PROTOCOL *WorkingDevicePath;
EFI_ACPI_S3_SAVE_PROTOCOL *AcpiS3Save;
LIST_ENTRY TempBootLists;
+ EFI_SECURITY_ARCH_PROTOCOL *SecurityProtocol;
//
// Record the performance data for End of BDS
@@ -241,6 +242,18 @@ BdsLibBootViaBootOption ( 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));
Status = gBS->LoadImage (
diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf index e9d4befe3d..983280a666 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf @@ -108,6 +108,7 @@ gEfiConsoleControlProtocolGuid # PROTOCOL CONSUMES
gEfiOEMBadgingProtocolGuid # PROTOCOL CONSUMES
gEfiHiiFontProtocolGuid # PROTOCOL CONSUMES
+ gEfiSecurityArchProtocolGuid
[FeaturePcd.common]
gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h b/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h index f1a977ae1c..61d5227c09 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h @@ -39,6 +39,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #include <Protocol/UgaDraw.h>
#include <Protocol/HiiFont.h>
#include <Protocol/HiiImage.h>
+#include <Protocol/Security.h>
#include <Guid/MemoryTypeInformation.h>
#include <Guid/FileInfo.h>
|