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;
 | 
						|
}
 |