summaryrefslogtreecommitdiff
path: root/IntelFrameworkModulePkg
diff options
context:
space:
mode:
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2009-03-10 07:54:11 +0000
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2009-03-10 07:54:11 +0000
commit07d97279a370e6e66dc1ae9b848fbd5f4eca202e (patch)
tree30fd4a9711228e15d4e97607a907c2539aa6657b /IntelFrameworkModulePkg
parent9d3dae39117064bba3d383a42463e931609c34e8 (diff)
downloadedk2-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')
-rw-r--r--IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeSupport.c4
-rw-r--r--IntelFrameworkModulePkg/Library/GenericBdsLib/BdsBoot.c13
-rw-r--r--IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf1
-rw-r--r--IntelFrameworkModulePkg/Library/GenericBdsLib/InternalBdsLib.h1
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>