REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			160 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Boot Discovery Policy UI for Boot Maintenance menu.
 | |
| 
 | |
|   Copyright (c) 2021, ARM Ltd. All rights reserved.<BR>
 | |
|   Copyright (c) 2021, Semihalf All rights reserved.<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include <Guid/BootDiscoveryPolicy.h>
 | |
| #include <Library/UefiDriverEntryPoint.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| #include <Library/UefiRuntimeServicesTableLib.h>
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/DevicePathLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/HiiLib.h>
 | |
| #include <Library/UefiLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Include/Library/PcdLib.h>
 | |
| 
 | |
| ///
 | |
| /// HII specific Vendor Device Path definition.
 | |
| ///
 | |
| typedef struct {
 | |
|   VENDOR_DEVICE_PATH          VendorDevicePath;
 | |
|   EFI_DEVICE_PATH_PROTOCOL    End;
 | |
| } HII_VENDOR_DEVICE_PATH;
 | |
| 
 | |
| extern UINT8  BootDiscoveryPolicyUiLibVfrBin[];
 | |
| 
 | |
| EFI_HII_HANDLE  mBPHiiHandle    = NULL;
 | |
| EFI_HANDLE      mBPDriverHandle = NULL;
 | |
| 
 | |
| STATIC HII_VENDOR_DEVICE_PATH  mVendorDevicePath = {
 | |
|   {
 | |
|     {
 | |
|       HARDWARE_DEVICE_PATH,
 | |
|       HW_VENDOR_DP,
 | |
|       {
 | |
|         (UINT8)(sizeof (VENDOR_DEVICE_PATH)),
 | |
|         (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
 | |
|       }
 | |
|     },
 | |
|     BOOT_DISCOVERY_POLICY_MGR_FORMSET_GUID
 | |
|   },
 | |
|   {
 | |
|     END_DEVICE_PATH_TYPE,
 | |
|     END_ENTIRE_DEVICE_PATH_SUBTYPE,
 | |
|     {
 | |
|       (UINT8)(END_DEVICE_PATH_LENGTH),
 | |
|       (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
 | |
|     }
 | |
|   }
 | |
| };
 | |
| 
 | |
| /**
 | |
| 
 | |
|   Initialize Boot Maintenance Menu library.
 | |
| 
 | |
|   @param ImageHandle     The image handle.
 | |
|   @param SystemTable     The system table.
 | |
| 
 | |
|   @retval  EFI_SUCCESS  Install Boot manager menu success.
 | |
|   @retval  Other        Return error status.gBPDisplayLibGuid
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| BootDiscoveryPolicyUiLibConstructor (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS  Status;
 | |
|   UINTN       Size;
 | |
|   UINT32      BootDiscoveryPolicy;
 | |
| 
 | |
|   Size   = sizeof (UINT32);
 | |
|   Status = gRT->GetVariable (
 | |
|                   BOOT_DISCOVERY_POLICY_VAR,
 | |
|                   &gBootDiscoveryPolicyMgrFormsetGuid,
 | |
|                   NULL,
 | |
|                   &Size,
 | |
|                   &BootDiscoveryPolicy
 | |
|                   );
 | |
|   if (EFI_ERROR (Status)) {
 | |
|     Status = PcdSet32S (PcdBootDiscoveryPolicy, PcdGet32 (PcdBootDiscoveryPolicy));
 | |
|     ASSERT_EFI_ERROR (Status);
 | |
|   }
 | |
| 
 | |
|   Status = gBS->InstallMultipleProtocolInterfaces (
 | |
|                   &mBPDriverHandle,
 | |
|                   &gEfiDevicePathProtocolGuid,
 | |
|                   &mVendorDevicePath,
 | |
|                   NULL
 | |
|                   );
 | |
|   if (EFI_ERROR (Status)) {
 | |
|     return Status;
 | |
|   }
 | |
| 
 | |
|   //
 | |
|   // Publish our HII data
 | |
|   //
 | |
|   mBPHiiHandle = HiiAddPackages (
 | |
|                    &gBootDiscoveryPolicyMgrFormsetGuid,
 | |
|                    mBPDriverHandle,
 | |
|                    BootDiscoveryPolicyUiLibVfrBin,
 | |
|                    BootDiscoveryPolicyUiLibStrings,
 | |
|                    NULL
 | |
|                    );
 | |
|   if (mBPHiiHandle == NULL) {
 | |
|     gBS->UninstallMultipleProtocolInterfaces (
 | |
|            mBPDriverHandle,
 | |
|            &gEfiDevicePathProtocolGuid,
 | |
|            &mVendorDevicePath,
 | |
|            NULL
 | |
|            );
 | |
| 
 | |
|     return EFI_OUT_OF_RESOURCES;
 | |
|   }
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   Destructor of Boot Maintenance menu library.
 | |
| 
 | |
|   @param  ImageHandle   The firmware allocated handle for the EFI image.
 | |
|   @param  SystemTable   A pointer to the EFI System Table.
 | |
| 
 | |
|   @retval EFI_SUCCESS   The destructor completed successfully.
 | |
|   @retval Other value   The destructor did not complete successfully.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| BootDiscoveryPolicyUiLibDestructor (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   )
 | |
| {
 | |
|   if (mBPDriverHandle != NULL) {
 | |
|     gBS->UninstallProtocolInterface (
 | |
|            mBPDriverHandle,
 | |
|            &gEfiDevicePathProtocolGuid,
 | |
|            &mVendorDevicePath
 | |
|            );
 | |
|     mBPDriverHandle = NULL;
 | |
|   }
 | |
| 
 | |
|   if (mBPHiiHandle != NULL) {
 | |
|     HiiRemovePackages (mBPHiiHandle);
 | |
|     mBPHiiHandle = NULL;
 | |
|   }
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 |