mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-11-04 05:38:26 +00:00 
			
		
		
		
	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:
		
							parent
							
								
									9d3dae3911
								
							
						
					
					
						commit
						07d97279a3
					
				@ -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;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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 (
 | 
			
		||||
 | 
			
		||||
@ -108,6 +108,7 @@
 | 
			
		||||
  gEfiConsoleControlProtocolGuid                # PROTOCOL CONSUMES
 | 
			
		||||
  gEfiOEMBadgingProtocolGuid                    # PROTOCOL CONSUMES
 | 
			
		||||
  gEfiHiiFontProtocolGuid                       # PROTOCOL CONSUMES
 | 
			
		||||
  gEfiSecurityArchProtocolGuid
 | 
			
		||||
 | 
			
		||||
[FeaturePcd.common]
 | 
			
		||||
  gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
 | 
			
		||||
 | 
			
		||||
@ -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>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user