VirtualBox

Ignore:
Timestamp:
Oct 28, 2015 8:17:18 PM (9 years ago)
Author:
vboxsync
Message:

EFI/Firmware: 'svn merge /vendor/edk2/UDK2010.SR1 /vendor/edk2/current .', reverting and removing files+dirs listed in ReadMe.vbox, resolving conflicts with help from ../UDK2014.SP1/. This is a raw untested merge.

Location:
trunk/src/VBox/Devices/EFI/Firmware
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/Firmware

  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/DxeIoLibCpuIo/DxeIoLibCpuIo.inf

    r48674 r58459  
    11## @file
    2 # Component description file for Cpu Io Dxe Io Library.
     2# I/O Library implementation that uses the CPU I/O Protocol for I/O and MMIO operations.
    33#
    4 # I/O Library implementation that uses the CPU I/O Protocol for I/O
    5 #  and MMIO operations.
    6 # Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
     4# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
    75#
    86#  This program and the accompanying materials
     
    1917  INF_VERSION                    = 0x00010005
    2018  BASE_NAME                      = DxeIoLibCpuIo
     19  MODULE_UNI_FILE                = DxeIoLibCpuIo.uni
    2120  FILE_GUID                      = e94cd42a-3aad-4ea0-9b09-945891c60ccd
    2221  MODULE_TYPE                    = DXE_DRIVER
     
    4746
    4847[Protocols]
    49   gEfiCpuIoProtocolGuid                         # PROTOCOL ALWAYS_CONSUMED
     48  gEfiCpuIoProtocolGuid                         ## CONSUMES
    5049
    5150[Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SAL_DRIVER, Depex.common.DXE_SMM_DRIVER]
    5251  gEfiCpuIoProtocolGuid
     52
  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/DxeIoLibCpuIo/IoHighLevel.c

    r48674 r58459  
    55  Base Library.
    66
    7   Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
     7  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
    88  This program and the accompanying materials
    99  are licensed and made available under the terms and conditions of the BSD License
     
    157157  If EndBit is greater than 7, then ASSERT().
    158158  If EndBit is less than StartBit, then ASSERT().
     159  If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    159160
    160161  @param  Port      The I/O port to write.
     
    197198  If EndBit is greater than 7, then ASSERT().
    198199  If EndBit is less than StartBit, then ASSERT().
     200  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    199201
    200202  @param  Port      The I/O port to write.
     
    237239  If EndBit is greater than 7, then ASSERT().
    238240  If EndBit is less than StartBit, then ASSERT().
     241  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    239242
    240243  @param  Port      The I/O port to write.
     
    279282  If EndBit is greater than 7, then ASSERT().
    280283  If EndBit is less than StartBit, then ASSERT().
     284  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
     285  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    281286
    282287  @param  Port      The I/O port to write.
     
    437442  If EndBit is greater than 15, then ASSERT().
    438443  If EndBit is less than StartBit, then ASSERT().
     444  If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    439445
    440446  @param  Port      The I/O port to write.
     
    477483  If EndBit is greater than 15, then ASSERT().
    478484  If EndBit is less than StartBit, then ASSERT().
     485  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    479486
    480487  @param  Port      The I/O port to write.
     
    517524  If EndBit is greater than 15, then ASSERT().
    518525  If EndBit is less than StartBit, then ASSERT().
     526  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    519527
    520528  @param  Port      The I/O port to write.
     
    559567  If EndBit is greater than 15, then ASSERT().
    560568  If EndBit is less than StartBit, then ASSERT().
     569  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
     570  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    561571
    562572  @param  Port      The I/O port to write.
     
    717727  If EndBit is greater than 31, then ASSERT().
    718728  If EndBit is less than StartBit, then ASSERT().
     729  If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    719730
    720731  @param  Port      The I/O port to write.
     
    757768  If EndBit is greater than 31, then ASSERT().
    758769  If EndBit is less than StartBit, then ASSERT().
     770  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    759771
    760772  @param  Port      The I/O port to write.
     
    797809  If EndBit is greater than 31, then ASSERT().
    798810  If EndBit is less than StartBit, then ASSERT().
     811  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    799812
    800813  @param  Port      The I/O port to write.
     
    839852  If EndBit is greater than 31, then ASSERT().
    840853  If EndBit is less than StartBit, then ASSERT().
     854  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
     855  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    841856
    842857  @param  Port      The I/O port to write.
     
    9971012  If EndBit is greater than 63, then ASSERT().
    9981013  If EndBit is less than StartBit, then ASSERT().
     1014  If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    9991015
    10001016  @param  Port      The I/O port to write.
     
    10371053  If EndBit is greater than 63, then ASSERT().
    10381054  If EndBit is less than StartBit, then ASSERT().
     1055  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    10391056
    10401057  @param  Port      The I/O port to write.
     
    10771094  If EndBit is greater than 63, then ASSERT().
    10781095  If EndBit is less than StartBit, then ASSERT().
     1096  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    10791097
    10801098  @param  Port      The I/O port to write.
     
    11191137  If EndBit is greater than 63, then ASSERT().
    11201138  If EndBit is less than StartBit, then ASSERT().
     1139  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
     1140  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    11211141
    11221142  @param  Port      The I/O port to write.
     
    12771297  If EndBit is greater than 7, then ASSERT().
    12781298  If EndBit is less than StartBit, then ASSERT().
     1299  If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    12791300
    12801301  @param  Address   MMIO register to write.
     
    13181339  If EndBit is greater than 7, then ASSERT().
    13191340  If EndBit is less than StartBit, then ASSERT().
     1341  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    13201342
    13211343  @param  Address   MMIO register to write.
     
    13591381  If EndBit is greater than 7, then ASSERT().
    13601382  If EndBit is less than StartBit, then ASSERT().
     1383  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    13611384
    13621385  @param  Address   MMIO register to write.
     
    14011424  If EndBit is greater than 7, then ASSERT().
    14021425  If EndBit is less than StartBit, then ASSERT().
     1426  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
     1427  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    14031428
    14041429  @param  Address   MMIO register to write.
     
    15591584  If EndBit is greater than 15, then ASSERT().
    15601585  If EndBit is less than StartBit, then ASSERT().
     1586  If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    15611587
    15621588  @param  Address   MMIO register to write.
     
    16001626  If EndBit is greater than 15, then ASSERT().
    16011627  If EndBit is less than StartBit, then ASSERT().
     1628  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    16021629
    16031630  @param  Address   MMIO register to write.
     
    16411668  If EndBit is greater than 15, then ASSERT().
    16421669  If EndBit is less than StartBit, then ASSERT().
     1670  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    16431671
    16441672  @param  Address   MMIO register to write.
     
    16831711  If EndBit is greater than 15, then ASSERT().
    16841712  If EndBit is less than StartBit, then ASSERT().
     1713  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
     1714  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    16851715
    16861716  @param  Address   MMIO register to write.
     
    18411871  If EndBit is greater than 31, then ASSERT().
    18421872  If EndBit is less than StartBit, then ASSERT().
     1873  If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    18431874
    18441875  @param  Address   MMIO register to write.
     
    18821913  If EndBit is greater than 31, then ASSERT().
    18831914  If EndBit is less than StartBit, then ASSERT().
     1915  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    18841916
    18851917  @param  Address   MMIO register to write.
     
    19231955  If EndBit is greater than 31, then ASSERT().
    19241956  If EndBit is less than StartBit, then ASSERT().
     1957  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    19251958
    19261959  @param  Address   MMIO register to write.
     
    19651998  If EndBit is greater than 31, then ASSERT().
    19661999  If EndBit is less than StartBit, then ASSERT().
     2000  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
     2001  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    19672002
    19682003  @param  Address   MMIO register to write.
     
    21232158  If EndBit is greater than 63, then ASSERT().
    21242159  If EndBit is less than StartBit, then ASSERT().
     2160  If Value is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    21252161
    21262162  @param  Address   MMIO register to write.
     
    21642200  If EndBit is greater than 63, then ASSERT().
    21652201  If EndBit is less than StartBit, then ASSERT().
     2202  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    21662203
    21672204  @param  Address   MMIO register to write.
     
    22052242  If EndBit is greater than 63, then ASSERT().
    22062243  If EndBit is less than StartBit, then ASSERT().
     2244  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    22072245
    22082246  @param  Address   MMIO register to write.
     
    22472285  If EndBit is greater than 63, then ASSERT().
    22482286  If EndBit is less than StartBit, then ASSERT().
     2287  If AndData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
     2288  If OrData is larger than the bitmask value range specified by StartBit and EndBit, then ASSERT().
    22492289
    22502290  @param  Address   MMIO register to write.
  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/DxeSmmDriverEntryPoint/DxeSmmDriverEntryPoint.inf

    r48674 r58459  
    11## @file
    2 # SMM driver entry point library
     2# Framework SMM driver entry point library.
    33#
    4 # Register driver in SMRAM and wrapper driver library constructors and entry point
    5 # Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
     4# Register driver in SMRAM and wrapper driver's library constructors and entry point.
     5#
     6# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
    67#
    78#  This program and the accompanying materials
     
    1819  INF_VERSION                    = 0x00010005
    1920  BASE_NAME                      = DxeSmmDriverEntryPoint
     21  MODULE_UNI_FILE                = DxeSmmDriverEntryPoint.uni
    2022  FILE_GUID                      = 79C5C7B7-1083-42a6-AD15-2A4E7C4274D7
    2123  MODULE_TYPE                    = DXE_SMM_DRIVER
     
    4547
    4648[Protocols]
    47   gEfiLoadedImageProtocolGuid                   # PROTOCOL ALWAYS_CONSUMED
    48   gEfiSmmBaseProtocolGuid                       # PROTOCOL ALWAYS_CONSUMED
    49   gEfiDevicePathProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED
     49  gEfiLoadedImageProtocolGuid                   ## CONSUMES
     50  gEfiSmmBaseProtocolGuid                       ## CONSUMES
     51  gEfiDevicePathProtocolGuid                    ## CONSUMES
    5052 
    5153[Depex]
    5254  gEfiSmmBaseProtocolGuid
    5355
    54 
  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/FrameworkUefiLib/Console.c

    r48674 r58459  
    22  This module provide help function for displaying unicode string.
    33
    4   Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
     4  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
    55  This program and the accompanying materials                         
    66  are licensed and made available under the terms and conditions of the BSD License         
     
    315315  )
    316316{
     317  EFI_STATUS                       Status;
    317318  VA_LIST                          Args;
    318319  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *ConOut;
     
    458459  //
    459460  if (Key != NULL) {
    460     gBS->WaitForEvent (1, &gST->ConIn->WaitForKey, &EventIndex);
    461     gST->ConIn->ReadKeyStroke (gST->ConIn, Key);
     461    while (TRUE) {
     462      Status = gST->ConIn->ReadKeyStroke (gST->ConIn, Key);
     463      if (!EFI_ERROR (Status)) {
     464        break;
     465      }
     466
     467      //
     468      // If we encounter error, continue to read another key in.
     469      //
     470      if (Status != EFI_NOT_READY) {
     471        continue;
     472      }
     473      gBS->WaitForEvent (1, &gST->ConIn->WaitForKey, &EventIndex);
     474    }
    462475  }
    463476}
  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/FrameworkUefiLib/FrameworkUefiLib.inf

    r48674 r58459  
    11## @file
    2 Component description file for the entry point to a EFIDXE Drivers
     2Library to abstract Framework extensions that conflict with UEFI 2.0 Specification.
    33#
    4 #  Library to abstract Framework extensions that conflict with UEFI 2.0 Specification.
    5 #  Help Port Framework/Tinao code that has conflicts with UEFI 2.0 by hiding the oldconflicts
    6 #  with library functions and supporting implementations of the old (EDK/EFI 1.10) and new
    7 #  (EDK II/UEFI 2.0) way. This module is a DXE driver as it contains DXE enum extensions for
    8 #  EFI event services.
     4#  This library is helpful to port Framework/Tinao code that has conflicts with UEFI 2.0.
     5#  It hides the old conflicts with library functions and supporting implementations of
     6#  the old (EDK/EFI 1.10) and new (EDK II/UEFI 2.0) way.
    97#
    10 #  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
     8#  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
    119#
    1210#  This program and the accompanying materials
     
    2321  INF_VERSION                    = 0x00010005
    2422  BASE_NAME                      = FrameworkUefiLib
     23  MODULE_UNI_FILE                = FrameworkUefiLib.uni
    2524  FILE_GUID                      = B2F0D71A-A39F-4094-854B-0C6BA6910CCE
    2625  MODULE_TYPE                    = UEFI_DRIVER
     
    5554 
    5655[Guids]
    57   gEfiEventReadyToBootGuid                      # ALWAYS_CONSUMED
    58   gEfiEventLegacyBootGuid                       # ALWAYS_CONSUMED
     56  gEfiEventReadyToBootGuid                      ## SOMETIMES_CONSUMES  ## Event
     57  gEfiEventLegacyBootGuid                       ## SOMETIMES_CONSUMES  ## Event
    5958
    6059[Protocols]
    61   gEfiDriverBindingProtocolGuid                 # ALWAYS_CONSUMED
    62   gEfiSimpleTextOutProtocolGuid                 # ALWAYS_CONSUMED
    63   gEfiGraphicsOutputProtocolGuid                # ALWAYS_CONSUMED
    64   gEfiHiiFontProtocolGuid                       # ALWAYS_CONSUMED
    65   gEfiComponentNameProtocolGuid                 # SOMETIMES_CONSUMED
    66   gEfiComponentName2ProtocolGuid                # SOMETIMES_CONSUMED
    67   gEfiDriverConfigurationProtocolGuid           # SOMETIMES_CONSUMED
    68   gEfiDriverConfiguration2ProtocolGuid          # SOMETIMES_CONSUMED
    69   gEfiDriverDiagnosticsProtocolGuid             # SOMETIMES_CONSUMED
    70   gEfiDriverDiagnostics2ProtocolGuid            # SOMETIMES_CONSUMED
    71   gEfiUgaDrawProtocolGuid                       # SOMETIMES_CONSUMED
     60  gEfiDriverBindingProtocolGuid                 ## SOMETIMES_PRODUCES
     61  gEfiSimpleTextOutProtocolGuid                 ## SOMETIMES_CONSUMES
     62  gEfiGraphicsOutputProtocolGuid                ## SOMETIMES_CONSUMES
     63  gEfiHiiFontProtocolGuid                       ## SOMETIMES_CONSUMES
     64  gEfiComponentNameProtocolGuid                 ## SOMETIMES_PRODUCES
     65  gEfiComponentName2ProtocolGuid                ## SOMETIMES_PRODUCES
     66  gEfiDriverConfigurationProtocolGuid           ## SOMETIMES_PRODUCES
     67  gEfiDriverConfiguration2ProtocolGuid          ## SOMETIMES_PRODUCES
     68  gEfiDriverDiagnosticsProtocolGuid             ## SOMETIMES_PRODUCES
     69  gEfiDriverDiagnostics2ProtocolGuid            ## SOMETIMES_PRODUCES
     70  gEfiUgaDrawProtocolGuid                       ## SOMETIMES_CONSUMES
    7271
    7372
    7473[Pcd]
    75   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize
     74  gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize ## SOMETIMES_CONSUMES
    7675
    7776[FeaturePcd]
    78   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable
    79   gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable
    80   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable
    81   gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable
    82   gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport
     77  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable    ## CONSUMES
     78  gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable        ## CONSUMES
     79  gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable   ## CONSUMES
     80  gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable       ## CONSUMES
     81  gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport           ## CONSUMES
    8382
  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiDriverModel.c

    r48674 r58459  
    33  installation.
    44
    5   Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
     5  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
    66  This program and the accompanying materials are
    77  licensed and made available under the terms and conditions of the BSD License
     
    5252  ASSERT (DriverBinding != NULL);
    5353
     54  //
     55  // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
     56  //
     57  DriverBinding->ImageHandle         = ImageHandle;
     58  DriverBinding->DriverBindingHandle = DriverBindingHandle;
     59
    5460  Status = gBS->InstallMultipleProtocolInterfaces (
    55                   &DriverBindingHandle,
     61                  &DriverBinding->DriverBindingHandle,
    5662                  &gEfiDriverBindingProtocolGuid, DriverBinding,
    5763                  NULL
     
    6167  //
    6268  ASSERT_EFI_ERROR (Status);
    63 
    64   //
    65   // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
    66   //
    67   DriverBinding->ImageHandle         = ImageHandle;
    68   DriverBinding->DriverBindingHandle = DriverBindingHandle;
    6969
    7070  return Status;
     
    114114  ASSERT (DriverBinding != NULL);
    115115
     116  //
     117  // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
     118  //
     119  DriverBinding->ImageHandle         = ImageHandle;
     120  DriverBinding->DriverBindingHandle = DriverBindingHandle;
     121
    116122  if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
    117123    if (DriverConfiguration == NULL) {
    118124      if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
    119125        Status = gBS->InstallMultipleProtocolInterfaces (
    120                         &DriverBindingHandle,
     126                        &DriverBinding->DriverBindingHandle,
    121127                        &gEfiDriverBindingProtocolGuid, DriverBinding,
    122128                        NULL
     
    124130      } else {
    125131        Status = gBS->InstallMultipleProtocolInterfaces (
    126                         &DriverBindingHandle,
     132                        &DriverBinding->DriverBindingHandle,
    127133                        &gEfiDriverBindingProtocolGuid, DriverBinding,
    128134                        &gEfiComponentNameProtocolGuid, ComponentName,
     
    133139      if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
    134140        Status = gBS->InstallMultipleProtocolInterfaces (
    135                         &DriverBindingHandle,
     141                        &DriverBinding->DriverBindingHandle,
    136142                        &gEfiDriverBindingProtocolGuid,       DriverBinding,
    137143                        &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     
    140146      } else {
    141147        Status = gBS->InstallMultipleProtocolInterfaces (
    142                         &DriverBindingHandle,
     148                        &DriverBinding->DriverBindingHandle,
    143149                        &gEfiDriverBindingProtocolGuid,       DriverBinding,
    144150                        &gEfiComponentNameProtocolGuid,       ComponentName,
     
    152158      if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
    153159        Status = gBS->InstallMultipleProtocolInterfaces (
    154                         &DriverBindingHandle,
     160                        &DriverBinding->DriverBindingHandle,
    155161                        &gEfiDriverBindingProtocolGuid,     DriverBinding,
    156162                        &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     
    159165      } else {
    160166        Status = gBS->InstallMultipleProtocolInterfaces (
    161                         &DriverBindingHandle,
     167                        &DriverBinding->DriverBindingHandle,
    162168                        &gEfiDriverBindingProtocolGuid,     DriverBinding,
    163169                        &gEfiComponentNameProtocolGuid,     ComponentName,
     
    169175      if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
    170176       Status = gBS->InstallMultipleProtocolInterfaces (
    171                         &DriverBindingHandle,
     177                        &DriverBinding->DriverBindingHandle,
    172178                        &gEfiDriverBindingProtocolGuid,       DriverBinding,
    173179                        &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     
    177183      } else {
    178184        Status = gBS->InstallMultipleProtocolInterfaces (
    179                         &DriverBindingHandle,
     185                        &DriverBinding->DriverBindingHandle,
    180186                        &gEfiDriverBindingProtocolGuid,       DriverBinding,
    181187                        &gEfiComponentNameProtocolGuid,       ComponentName,
     
    192198  //
    193199  ASSERT_EFI_ERROR (Status);
    194 
    195   //
    196   // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
    197   //
    198   DriverBinding->ImageHandle         = ImageHandle;
    199   DriverBinding->DriverBindingHandle = DriverBindingHandle;
    200200
    201201  return Status;
     
    242242  ASSERT (DriverBinding != NULL);
    243243
     244  //
     245  // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
     246  //
     247  DriverBinding->ImageHandle         = ImageHandle;
     248  DriverBinding->DriverBindingHandle = DriverBindingHandle;
     249
    244250  if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
    245251    if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    246252      Status = gBS->InstallMultipleProtocolInterfaces (
    247                       &DriverBindingHandle,
     253                      &DriverBinding->DriverBindingHandle,
    248254                      &gEfiDriverBindingProtocolGuid, DriverBinding,
    249255                      NULL
     
    251257      } else {
    252258      Status = gBS->InstallMultipleProtocolInterfaces (
    253                       &DriverBindingHandle,
     259                      &DriverBinding->DriverBindingHandle,
    254260                      &gEfiDriverBindingProtocolGuid, DriverBinding,
    255261                      &gEfiComponentName2ProtocolGuid, ComponentName2,
     
    260266     if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    261267       Status = gBS->InstallMultipleProtocolInterfaces (
    262                        &DriverBindingHandle,
     268                       &DriverBinding->DriverBindingHandle,
    263269                       &gEfiDriverBindingProtocolGuid, DriverBinding,
    264270                       &gEfiComponentNameProtocolGuid, ComponentName,
     
    267273     } else {
    268274       Status = gBS->InstallMultipleProtocolInterfaces (
    269                        &DriverBindingHandle,
     275                       &DriverBinding->DriverBindingHandle,
    270276                       &gEfiDriverBindingProtocolGuid, DriverBinding,
    271277                       &gEfiComponentNameProtocolGuid, ComponentName,
     
    275281    }
    276282  }
     283
    277284  //
    278285  // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
    279286  //
    280287  ASSERT_EFI_ERROR (Status);
    281 
    282   //
    283   // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
    284   //
    285   DriverBinding->ImageHandle         = ImageHandle;
    286   DriverBinding->DriverBindingHandle = DriverBindingHandle;
    287288
    288289  return Status;
     
    301302  produces multiple Driver Binding Protocols.
    302303  If DriverBinding is NULL, then ASSERT().
    303   If the installation fails, then ASSERT(). 
     304  If the installation fails, then ASSERT().
    304305
    305306
     
    339340  ASSERT (DriverBinding != NULL);
    340341
     342  //
     343  // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
     344  //
     345  DriverBinding->ImageHandle         = ImageHandle;
     346  DriverBinding->DriverBindingHandle = DriverBindingHandle;
     347 
    341348  if (DriverConfiguration2 == NULL) {
    342349    if (DriverConfiguration == NULL) {
     
    346353            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    347354              Status = gBS->InstallMultipleProtocolInterfaces (
    348                               &DriverBindingHandle,
    349                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    350                               NULL
    351                               );
    352             } else {
    353               Status = gBS->InstallMultipleProtocolInterfaces (
    354                               &DriverBindingHandle,
    355                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    356                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    357                               NULL
    358                               );
    359             }
    360           } else {
    361             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    362               Status = gBS->InstallMultipleProtocolInterfaces (
    363                               &DriverBindingHandle,
    364                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    365                               &gEfiComponentNameProtocolGuid, ComponentName,
    366                               NULL
    367                               );
    368             } else {
    369               Status = gBS->InstallMultipleProtocolInterfaces (
    370                               &DriverBindingHandle,
     355                              &DriverBinding->DriverBindingHandle,
     356                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     357                              NULL
     358                              );
     359            } else {
     360              Status = gBS->InstallMultipleProtocolInterfaces (
     361                              &DriverBinding->DriverBindingHandle,
     362                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     363                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     364                              NULL
     365                              );
     366            }
     367          } else {
     368            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     369              Status = gBS->InstallMultipleProtocolInterfaces (
     370                              &DriverBinding->DriverBindingHandle,
     371                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     372                              &gEfiComponentNameProtocolGuid, ComponentName,
     373                              NULL
     374                              );
     375            } else {
     376              Status = gBS->InstallMultipleProtocolInterfaces (
     377                              &DriverBinding->DriverBindingHandle,
    371378                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    372379                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    380387            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    381388              Status = gBS->InstallMultipleProtocolInterfaces (
    382                               &DriverBindingHandle,
    383                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    384                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    385                               NULL
    386                               );
    387             } else {
    388               Status = gBS->InstallMultipleProtocolInterfaces (
    389                               &DriverBindingHandle,
    390                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    391                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    392                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    393                               NULL
    394                               );
    395             }
    396           } else {
    397             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    398               Status = gBS->InstallMultipleProtocolInterfaces (
    399                               &DriverBindingHandle,
    400                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    401                               &gEfiComponentNameProtocolGuid, ComponentName,
    402                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    403                               NULL
    404                               );
    405             } else {
    406               Status = gBS->InstallMultipleProtocolInterfaces (
    407                               &DriverBindingHandle,
     389                              &DriverBinding->DriverBindingHandle,
     390                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     391                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     392                              NULL
     393                              );
     394            } else {
     395              Status = gBS->InstallMultipleProtocolInterfaces (
     396                              &DriverBinding->DriverBindingHandle,
     397                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     398                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     399                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     400                              NULL
     401                              );
     402            }
     403          } else {
     404            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     405              Status = gBS->InstallMultipleProtocolInterfaces (
     406                              &DriverBinding->DriverBindingHandle,
     407                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     408                              &gEfiComponentNameProtocolGuid, ComponentName,
     409                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     410                              NULL
     411                              );
     412            } else {
     413              Status = gBS->InstallMultipleProtocolInterfaces (
     414                              &DriverBinding->DriverBindingHandle,
    408415                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    409416                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    420427            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    421428              Status = gBS->InstallMultipleProtocolInterfaces (
    422                               &DriverBindingHandle,
    423                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    424                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    425                               NULL
    426                               );
    427             } else {
    428               Status = gBS->InstallMultipleProtocolInterfaces (
    429                               &DriverBindingHandle,
    430                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    431                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    432                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    433                               NULL
    434                               );
    435             }
    436           } else {
    437             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    438               Status = gBS->InstallMultipleProtocolInterfaces (
    439                               &DriverBindingHandle,
    440                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    441                               &gEfiComponentNameProtocolGuid, ComponentName,
    442                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    443                               NULL
    444                               );
    445             } else {
    446               Status = gBS->InstallMultipleProtocolInterfaces (
    447                               &DriverBindingHandle,
     429                              &DriverBinding->DriverBindingHandle,
     430                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     431                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     432                              NULL
     433                              );
     434            } else {
     435              Status = gBS->InstallMultipleProtocolInterfaces (
     436                              &DriverBinding->DriverBindingHandle,
     437                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     438                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     439                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     440                              NULL
     441                              );
     442            }
     443          } else {
     444            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     445              Status = gBS->InstallMultipleProtocolInterfaces (
     446                              &DriverBinding->DriverBindingHandle,
     447                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     448                              &gEfiComponentNameProtocolGuid, ComponentName,
     449                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     450                              NULL
     451                              );
     452            } else {
     453              Status = gBS->InstallMultipleProtocolInterfaces (
     454                              &DriverBinding->DriverBindingHandle,
    448455                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    449456                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    458465            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    459466              Status = gBS->InstallMultipleProtocolInterfaces (
    460                               &DriverBindingHandle,
    461                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    462                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    463                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    464                               NULL
    465                               );
    466             } else {
    467               Status = gBS->InstallMultipleProtocolInterfaces (
    468                               &DriverBindingHandle,
    469                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    470                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    471                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    472                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    473                               NULL
    474                               );
    475             }
    476           } else {
    477             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    478               Status = gBS->InstallMultipleProtocolInterfaces (
    479                               &DriverBindingHandle,
    480                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    481                               &gEfiComponentNameProtocolGuid, ComponentName,
    482                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    483                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    484                               NULL
    485                               );
    486             } else {
    487               Status = gBS->InstallMultipleProtocolInterfaces (
    488                               &DriverBindingHandle,
     467                              &DriverBinding->DriverBindingHandle,
     468                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     469                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     470                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     471                              NULL
     472                              );
     473            } else {
     474              Status = gBS->InstallMultipleProtocolInterfaces (
     475                              &DriverBinding->DriverBindingHandle,
     476                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     477                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     478                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     479                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     480                              NULL
     481                              );
     482            }
     483          } else {
     484            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     485              Status = gBS->InstallMultipleProtocolInterfaces (
     486                              &DriverBinding->DriverBindingHandle,
     487                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     488                              &gEfiComponentNameProtocolGuid, ComponentName,
     489                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     490                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     491                              NULL
     492                              );
     493            } else {
     494              Status = gBS->InstallMultipleProtocolInterfaces (
     495                              &DriverBinding->DriverBindingHandle,
    489496                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    490497                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    504511            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    505512              Status = gBS->InstallMultipleProtocolInterfaces (
    506                               &DriverBindingHandle,
    507                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    508                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    509                               NULL
    510                               );
    511             } else {
    512               Status = gBS->InstallMultipleProtocolInterfaces (
    513                               &DriverBindingHandle,
    514                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    515                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    516                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    517                               NULL
    518                               );
    519             }
    520           } else {
    521             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    522               Status = gBS->InstallMultipleProtocolInterfaces (
    523                               &DriverBindingHandle,
    524                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    525                               &gEfiComponentNameProtocolGuid, ComponentName,
    526                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    527                               NULL
    528                               );
    529             } else {
    530               Status = gBS->InstallMultipleProtocolInterfaces (
    531                               &DriverBindingHandle,
     513                              &DriverBinding->DriverBindingHandle,
     514                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     515                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     516                              NULL
     517                              );
     518            } else {
     519              Status = gBS->InstallMultipleProtocolInterfaces (
     520                              &DriverBinding->DriverBindingHandle,
     521                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     522                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     523                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     524                              NULL
     525                              );
     526            }
     527          } else {
     528            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     529              Status = gBS->InstallMultipleProtocolInterfaces (
     530                              &DriverBinding->DriverBindingHandle,
     531                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     532                              &gEfiComponentNameProtocolGuid, ComponentName,
     533                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     534                              NULL
     535                              );
     536            } else {
     537              Status = gBS->InstallMultipleProtocolInterfaces (
     538                              &DriverBinding->DriverBindingHandle,
    532539                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    533540                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    542549            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    543550              Status = gBS->InstallMultipleProtocolInterfaces (
    544                               &DriverBindingHandle,
    545                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    546                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    547                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    548                               NULL
    549                               );
    550             } else {
    551               Status = gBS->InstallMultipleProtocolInterfaces (
    552                               &DriverBindingHandle,
    553                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    554                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    555                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    556                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    557                               NULL
    558                               );
    559             }
    560           } else {
    561             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    562               Status = gBS->InstallMultipleProtocolInterfaces (
    563                               &DriverBindingHandle,
    564                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    565                               &gEfiComponentNameProtocolGuid, ComponentName,
    566                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    567                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    568                               NULL
    569                               );
    570             } else {
    571               Status = gBS->InstallMultipleProtocolInterfaces (
    572                               &DriverBindingHandle,
     551                              &DriverBinding->DriverBindingHandle,
     552                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     553                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     554                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     555                              NULL
     556                              );
     557            } else {
     558              Status = gBS->InstallMultipleProtocolInterfaces (
     559                              &DriverBinding->DriverBindingHandle,
     560                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     561                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     562                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     563                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     564                              NULL
     565                              );
     566            }
     567          } else {
     568            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     569              Status = gBS->InstallMultipleProtocolInterfaces (
     570                              &DriverBinding->DriverBindingHandle,
     571                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     572                              &gEfiComponentNameProtocolGuid, ComponentName,
     573                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     574                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     575                              NULL
     576                              );
     577            } else {
     578              Status = gBS->InstallMultipleProtocolInterfaces (
     579                              &DriverBinding->DriverBindingHandle,
    573580                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    574581                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    586593            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    587594              Status = gBS->InstallMultipleProtocolInterfaces (
    588                               &DriverBindingHandle,
    589                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    590                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    591                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    592                               NULL
    593                               );
    594             } else {
    595               Status = gBS->InstallMultipleProtocolInterfaces (
    596                               &DriverBindingHandle,
    597                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    598                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    599                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    600                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    601                               NULL
    602                               );
    603             }
    604           } else {
    605             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    606               Status = gBS->InstallMultipleProtocolInterfaces (
    607                               &DriverBindingHandle,
    608                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    609                               &gEfiComponentNameProtocolGuid, ComponentName,
    610                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    611                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    612                               NULL
    613                               );
    614             } else {
    615               Status = gBS->InstallMultipleProtocolInterfaces (
    616                               &DriverBindingHandle,
     595                              &DriverBinding->DriverBindingHandle,
     596                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     597                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     598                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     599                              NULL
     600                              );
     601            } else {
     602              Status = gBS->InstallMultipleProtocolInterfaces (
     603                              &DriverBinding->DriverBindingHandle,
     604                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     605                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     606                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     607                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     608                              NULL
     609                              );
     610            }
     611          } else {
     612            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     613              Status = gBS->InstallMultipleProtocolInterfaces (
     614                              &DriverBinding->DriverBindingHandle,
     615                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     616                              &gEfiComponentNameProtocolGuid, ComponentName,
     617                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     618                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     619                              NULL
     620                              );
     621            } else {
     622              Status = gBS->InstallMultipleProtocolInterfaces (
     623                              &DriverBinding->DriverBindingHandle,
    617624                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    618625                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    628635            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    629636              Status = gBS->InstallMultipleProtocolInterfaces (
    630                               &DriverBindingHandle,
    631                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    632                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    633                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    634                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    635                               NULL
    636                               );
    637             } else {
    638               Status = gBS->InstallMultipleProtocolInterfaces (
    639                               &DriverBindingHandle,
    640                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    641                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    642                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    643                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    644                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    645                               NULL
    646                               );
    647             }
    648           } else {
    649             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    650               Status = gBS->InstallMultipleProtocolInterfaces (
    651                               &DriverBindingHandle,
    652                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    653                               &gEfiComponentNameProtocolGuid, ComponentName,
    654                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    655                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    656                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    657                               NULL
    658                               );
    659             } else {
    660               Status = gBS->InstallMultipleProtocolInterfaces (
    661                               &DriverBindingHandle,
     637                              &DriverBinding->DriverBindingHandle,
     638                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     639                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     640                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     641                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     642                              NULL
     643                              );
     644            } else {
     645              Status = gBS->InstallMultipleProtocolInterfaces (
     646                              &DriverBinding->DriverBindingHandle,
     647                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     648                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     649                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     650                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     651                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     652                              NULL
     653                              );
     654            }
     655          } else {
     656            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     657              Status = gBS->InstallMultipleProtocolInterfaces (
     658                              &DriverBinding->DriverBindingHandle,
     659                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     660                              &gEfiComponentNameProtocolGuid, ComponentName,
     661                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     662                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     663                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     664                              NULL
     665                              );
     666            } else {
     667              Status = gBS->InstallMultipleProtocolInterfaces (
     668                              &DriverBinding->DriverBindingHandle,
    662669                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    663670                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    680687            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    681688              Status = gBS->InstallMultipleProtocolInterfaces (
    682                               &DriverBindingHandle,
    683                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    684                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    685                               NULL
    686                               );
    687             } else {
    688               Status = gBS->InstallMultipleProtocolInterfaces (
    689                               &DriverBindingHandle,
    690                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    691                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    692                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    693                               NULL
    694                               );
    695             }
    696           } else {
    697             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    698               Status = gBS->InstallMultipleProtocolInterfaces (
    699                               &DriverBindingHandle,
    700                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    701                               &gEfiComponentNameProtocolGuid, ComponentName,
    702                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    703                               NULL
    704                               );
    705             } else {
    706               Status = gBS->InstallMultipleProtocolInterfaces (
    707                               &DriverBindingHandle,
     689                              &DriverBinding->DriverBindingHandle,
     690                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     691                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     692                              NULL
     693                              );
     694            } else {
     695              Status = gBS->InstallMultipleProtocolInterfaces (
     696                              &DriverBinding->DriverBindingHandle,
     697                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     698                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     699                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     700                              NULL
     701                              );
     702            }
     703          } else {
     704            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     705              Status = gBS->InstallMultipleProtocolInterfaces (
     706                              &DriverBinding->DriverBindingHandle,
     707                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     708                              &gEfiComponentNameProtocolGuid, ComponentName,
     709                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     710                              NULL
     711                              );
     712            } else {
     713              Status = gBS->InstallMultipleProtocolInterfaces (
     714                              &DriverBinding->DriverBindingHandle,
    708715                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    709716                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    718725            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    719726              Status = gBS->InstallMultipleProtocolInterfaces (
    720                               &DriverBindingHandle,
    721                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    722                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    723                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    724                               NULL
    725                               );
    726             } else {
    727               Status = gBS->InstallMultipleProtocolInterfaces (
    728                               &DriverBindingHandle,
    729                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    730                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    731                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    732                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    733                               NULL
    734                               );
    735             }
    736           } else {
    737             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    738               Status = gBS->InstallMultipleProtocolInterfaces (
    739                               &DriverBindingHandle,
    740                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    741                               &gEfiComponentNameProtocolGuid, ComponentName,
    742                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    743                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    744                               NULL
    745                               );
    746             } else {
    747               Status = gBS->InstallMultipleProtocolInterfaces (
    748                               &DriverBindingHandle,
     727                              &DriverBinding->DriverBindingHandle,
     728                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     729                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     730                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     731                              NULL
     732                              );
     733            } else {
     734              Status = gBS->InstallMultipleProtocolInterfaces (
     735                              &DriverBinding->DriverBindingHandle,
     736                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     737                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     738                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     739                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     740                              NULL
     741                              );
     742            }
     743          } else {
     744            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     745              Status = gBS->InstallMultipleProtocolInterfaces (
     746                              &DriverBinding->DriverBindingHandle,
     747                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     748                              &gEfiComponentNameProtocolGuid, ComponentName,
     749                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     750                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     751                              NULL
     752                              );
     753            } else {
     754              Status = gBS->InstallMultipleProtocolInterfaces (
     755                              &DriverBinding->DriverBindingHandle,
    749756                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    750757                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    762769            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    763770              Status = gBS->InstallMultipleProtocolInterfaces (
    764                               &DriverBindingHandle,
    765                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    766                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    767                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    768                               NULL
    769                               );
    770             } else {
    771               Status = gBS->InstallMultipleProtocolInterfaces (
    772                               &DriverBindingHandle,
    773                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    774                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    775                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    776                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    777                               NULL
    778                               );
    779             }
    780           } else {
    781             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    782               Status = gBS->InstallMultipleProtocolInterfaces (
    783                               &DriverBindingHandle,
    784                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    785                               &gEfiComponentNameProtocolGuid, ComponentName,
    786                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    787                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    788                               NULL
    789                               );
    790             } else {
    791               Status = gBS->InstallMultipleProtocolInterfaces (
    792                               &DriverBindingHandle,
     771                              &DriverBinding->DriverBindingHandle,
     772                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     773                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     774                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     775                              NULL
     776                              );
     777            } else {
     778              Status = gBS->InstallMultipleProtocolInterfaces (
     779                              &DriverBinding->DriverBindingHandle,
     780                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     781                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     782                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     783                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     784                              NULL
     785                              );
     786            }
     787          } else {
     788            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     789              Status = gBS->InstallMultipleProtocolInterfaces (
     790                              &DriverBinding->DriverBindingHandle,
     791                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     792                              &gEfiComponentNameProtocolGuid, ComponentName,
     793                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     794                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     795                              NULL
     796                              );
     797            } else {
     798              Status = gBS->InstallMultipleProtocolInterfaces (
     799                              &DriverBinding->DriverBindingHandle,
    793800                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    794801                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    804811            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    805812              Status = gBS->InstallMultipleProtocolInterfaces (
    806                               &DriverBindingHandle,
    807                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    808                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    809                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    810                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    811                               NULL
    812                               );
    813             } else {
    814               Status = gBS->InstallMultipleProtocolInterfaces (
    815                               &DriverBindingHandle,
    816                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    817                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    818                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    819                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    820                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    821                               NULL
    822                               );
    823             }
    824           } else {
    825             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    826               Status = gBS->InstallMultipleProtocolInterfaces (
    827                               &DriverBindingHandle,
    828                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    829                               &gEfiComponentNameProtocolGuid, ComponentName,
    830                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    831                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    832                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    833                               NULL
    834                               );
    835             } else {
    836               Status = gBS->InstallMultipleProtocolInterfaces (
    837                               &DriverBindingHandle,
     813                              &DriverBinding->DriverBindingHandle,
     814                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     815                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     816                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     817                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     818                              NULL
     819                              );
     820            } else {
     821              Status = gBS->InstallMultipleProtocolInterfaces (
     822                              &DriverBinding->DriverBindingHandle,
     823                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     824                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     825                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     826                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     827                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     828                              NULL
     829                              );
     830            }
     831          } else {
     832            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     833              Status = gBS->InstallMultipleProtocolInterfaces (
     834                              &DriverBinding->DriverBindingHandle,
     835                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     836                              &gEfiComponentNameProtocolGuid, ComponentName,
     837                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     838                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     839                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     840                              NULL
     841                              );
     842            } else {
     843              Status = gBS->InstallMultipleProtocolInterfaces (
     844                              &DriverBinding->DriverBindingHandle,
    838845                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    839846                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    854861            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    855862              Status = gBS->InstallMultipleProtocolInterfaces (
    856                               &DriverBindingHandle,
    857                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    858                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    859                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    860                               NULL
    861                               );
    862             } else {
    863               Status = gBS->InstallMultipleProtocolInterfaces (
    864                               &DriverBindingHandle,
    865                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    866                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    867                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    868                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    869                               NULL
    870                               );
    871             }
    872           } else {
    873             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    874               Status = gBS->InstallMultipleProtocolInterfaces (
    875                               &DriverBindingHandle,
    876                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    877                               &gEfiComponentNameProtocolGuid, ComponentName,
    878                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    879                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    880                               NULL
    881                               );
    882             } else {
    883               Status = gBS->InstallMultipleProtocolInterfaces (
    884                               &DriverBindingHandle,
     863                              &DriverBinding->DriverBindingHandle,
     864                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     865                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     866                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     867                              NULL
     868                              );
     869            } else {
     870              Status = gBS->InstallMultipleProtocolInterfaces (
     871                              &DriverBinding->DriverBindingHandle,
     872                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     873                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     874                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     875                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     876                              NULL
     877                              );
     878            }
     879          } else {
     880            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     881              Status = gBS->InstallMultipleProtocolInterfaces (
     882                              &DriverBinding->DriverBindingHandle,
     883                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     884                              &gEfiComponentNameProtocolGuid, ComponentName,
     885                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     886                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     887                              NULL
     888                              );
     889            } else {
     890              Status = gBS->InstallMultipleProtocolInterfaces (
     891                              &DriverBinding->DriverBindingHandle,
    885892                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    886893                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    896903            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    897904              Status = gBS->InstallMultipleProtocolInterfaces (
    898                               &DriverBindingHandle,
    899                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    900                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    901                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    902                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    903                               NULL
    904                               );
    905             } else {
    906               Status = gBS->InstallMultipleProtocolInterfaces (
    907                               &DriverBindingHandle,
    908                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    909                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    910                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    911                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    912                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    913                               NULL
    914                               );
    915             }
    916           } else {
    917             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    918               Status = gBS->InstallMultipleProtocolInterfaces (
    919                               &DriverBindingHandle,
    920                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    921                               &gEfiComponentNameProtocolGuid, ComponentName,
    922                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    923                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    924                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    925                               NULL
    926                               );
    927             } else {
    928               Status = gBS->InstallMultipleProtocolInterfaces (
    929                               &DriverBindingHandle,
     905                              &DriverBinding->DriverBindingHandle,
     906                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     907                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     908                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     909                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     910                              NULL
     911                              );
     912            } else {
     913              Status = gBS->InstallMultipleProtocolInterfaces (
     914                              &DriverBinding->DriverBindingHandle,
     915                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     916                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     917                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     918                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     919                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     920                              NULL
     921                              );
     922            }
     923          } else {
     924            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     925              Status = gBS->InstallMultipleProtocolInterfaces (
     926                              &DriverBinding->DriverBindingHandle,
     927                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     928                              &gEfiComponentNameProtocolGuid, ComponentName,
     929                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     930                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     931                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     932                              NULL
     933                              );
     934            } else {
     935              Status = gBS->InstallMultipleProtocolInterfaces (
     936                              &DriverBinding->DriverBindingHandle,
    930937                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    931938                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    944951            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    945952              Status = gBS->InstallMultipleProtocolInterfaces (
    946                               &DriverBindingHandle,
    947                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    948                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    949                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    950                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    951                               NULL
    952                               );
    953             } else {
    954               Status = gBS->InstallMultipleProtocolInterfaces (
    955                               &DriverBindingHandle,
    956                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    957                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    958                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    959                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    960                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    961                               NULL
    962                               );
    963             }
    964           } else {
    965             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    966               Status = gBS->InstallMultipleProtocolInterfaces (
    967                               &DriverBindingHandle,
    968                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    969                               &gEfiComponentNameProtocolGuid, ComponentName,
    970                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    971                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    972                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    973                               NULL
    974                               );
    975             } else {
    976               Status = gBS->InstallMultipleProtocolInterfaces (
    977                               &DriverBindingHandle,
     953                              &DriverBinding->DriverBindingHandle,
     954                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     955                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     956                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     957                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     958                              NULL
     959                              );
     960            } else {
     961              Status = gBS->InstallMultipleProtocolInterfaces (
     962                              &DriverBinding->DriverBindingHandle,
     963                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     964                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     965                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     966                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     967                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     968                              NULL
     969                              );
     970            }
     971          } else {
     972            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     973              Status = gBS->InstallMultipleProtocolInterfaces (
     974                              &DriverBinding->DriverBindingHandle,
     975                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     976                              &gEfiComponentNameProtocolGuid, ComponentName,
     977                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     978                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     979                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     980                              NULL
     981                              );
     982            } else {
     983              Status = gBS->InstallMultipleProtocolInterfaces (
     984                              &DriverBinding->DriverBindingHandle,
    978985                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    979986                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    990997            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    991998              Status = gBS->InstallMultipleProtocolInterfaces (
    992                               &DriverBindingHandle,
    993                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    994                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    995                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    996                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    997                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    998                               NULL
    999                               );
    1000             } else {
    1001               Status = gBS->InstallMultipleProtocolInterfaces (
    1002                               &DriverBindingHandle,
    1003                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    1004                               &gEfiComponentName2ProtocolGuid, ComponentName2,
    1005                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    1006                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    1007                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    1008                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    1009                               NULL
    1010                               );
    1011             }
    1012           } else {
    1013             if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
    1014               Status = gBS->InstallMultipleProtocolInterfaces (
    1015                               &DriverBindingHandle,
    1016                               &gEfiDriverBindingProtocolGuid, DriverBinding,
    1017                               &gEfiComponentNameProtocolGuid, ComponentName,
    1018                               &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
    1019                               &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
    1020                               &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
    1021                               &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
    1022                               NULL
    1023                               );
    1024             } else {
    1025               Status = gBS->InstallMultipleProtocolInterfaces (
    1026                               &DriverBindingHandle,
     999                              &DriverBinding->DriverBindingHandle,
     1000                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     1001                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     1002                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     1003                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     1004                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     1005                              NULL
     1006                              );
     1007            } else {
     1008              Status = gBS->InstallMultipleProtocolInterfaces (
     1009                              &DriverBinding->DriverBindingHandle,
     1010                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     1011                              &gEfiComponentName2ProtocolGuid, ComponentName2,
     1012                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     1013                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     1014                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     1015                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     1016                              NULL
     1017                              );
     1018            }
     1019          } else {
     1020            if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
     1021              Status = gBS->InstallMultipleProtocolInterfaces (
     1022                              &DriverBinding->DriverBindingHandle,
     1023                              &gEfiDriverBindingProtocolGuid, DriverBinding,
     1024                              &gEfiComponentNameProtocolGuid, ComponentName,
     1025                              &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
     1026                              &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
     1027                              &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
     1028                              &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
     1029                              NULL
     1030                              );
     1031            } else {
     1032              Status = gBS->InstallMultipleProtocolInterfaces (
     1033                              &DriverBinding->DriverBindingHandle,
    10271034                              &gEfiDriverBindingProtocolGuid, DriverBinding,
    10281035                              &gEfiComponentNameProtocolGuid, ComponentName,
     
    10411048  }
    10421049
    1043 
    10441050  //
    10451051  // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
    10461052  //
    10471053  ASSERT_EFI_ERROR (Status);
    1048 
    1049   //
    1050   // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
    1051   //
    1052   DriverBinding->ImageHandle         = ImageHandle;
    1053   DriverBinding->DriverBindingHandle = DriverBindingHandle;
    10541054
    10551055  return Status;
    10561056}
    1057 
    1058 
  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLibPrint.c

    r48674 r58459  
    711711}
    712712
     713/**
     714  Appends a formatted Unicode string to a Null-terminated Unicode string
     715 
     716  This function appends a formatted Unicode string to the Null-terminated
     717  Unicode string specified by String.   String is optional and may be NULL.
     718  Storage for the formatted Unicode string returned is allocated using
     719  AllocatePool().  The pointer to the appended string is returned.  The caller
     720  is responsible for freeing the returned string.
     721 
     722  If String is not NULL and not aligned on a 16-bit boundary, then ASSERT().
     723  If FormatString is NULL, then ASSERT().
     724  If FormatString is not aligned on a 16-bit boundary, then ASSERT().
     725 
     726  @param[in] String         A Null-terminated Unicode string.
     727  @param[in] FormatString   A Null-terminated Unicode format string.
     728  @param[in]  Marker        VA_LIST marker for the variable argument list.
     729
     730  @retval NULL    There was not enough available memory.
     731  @return         Null-terminated Unicode string is that is the formatted
     732                  string appended to String.
     733**/
     734CHAR16*
     735EFIAPI
     736CatVSPrint (
     737  IN  CHAR16  *String, OPTIONAL
     738  IN  CONST CHAR16  *FormatString,
     739  IN  VA_LIST       Marker
     740  )
     741{
     742  UINTN   CharactersRequired;
     743  UINTN   SizeRequired;
     744  CHAR16  *BufferToReturn;
     745  VA_LIST ExtraMarker;
     746
     747  VA_COPY (ExtraMarker, Marker);
     748  CharactersRequired = SPrintLength(FormatString, ExtraMarker);
     749  VA_END (ExtraMarker);
     750
     751  if (String != NULL) {
     752    SizeRequired = StrSize(String) + (CharactersRequired * sizeof(CHAR16));
     753  } else {
     754    SizeRequired = sizeof(CHAR16) + (CharactersRequired * sizeof(CHAR16));
     755  }
     756
     757  BufferToReturn = AllocateZeroPool(SizeRequired);
     758
     759  if (BufferToReturn == NULL) {
     760    return NULL;
     761  }
     762
     763  if (String != NULL) {
     764    StrCpy(BufferToReturn, String);
     765  }
     766
     767  UnicodeVSPrint(BufferToReturn + StrLen(BufferToReturn), (CharactersRequired+1) * sizeof(CHAR16), FormatString, Marker);
     768
     769  ASSERT(StrSize(BufferToReturn)==SizeRequired);
     770
     771  return (BufferToReturn);
     772}
     773
     774/**
     775  Appends a formatted Unicode string to a Null-terminated Unicode string
     776 
     777  This function appends a formatted Unicode string to the Null-terminated
     778  Unicode string specified by String.   String is optional and may be NULL.
     779  Storage for the formatted Unicode string returned is allocated using
     780  AllocatePool().  The pointer to the appended string is returned.  The caller
     781  is responsible for freeing the returned string.
     782 
     783  If String is not NULL and not aligned on a 16-bit boundary, then ASSERT().
     784  If FormatString is NULL, then ASSERT().
     785  If FormatString is not aligned on a 16-bit boundary, then ASSERT().
     786 
     787  @param[in] String         A Null-terminated Unicode string.
     788  @param[in] FormatString   A Null-terminated Unicode format string.
     789  @param[in] ...            The variable argument list whose contents are
     790                            accessed based on the format string specified by
     791                            FormatString.
     792
     793  @retval NULL    There was not enough available memory.
     794  @return         Null-terminated Unicode string is that is the formatted
     795                  string appended to String.
     796**/
     797CHAR16 *
     798EFIAPI
     799CatSPrint (
     800  IN  CHAR16  *String, OPTIONAL
     801  IN  CONST CHAR16  *FormatString,
     802  ...
     803  )
     804{
     805  VA_LIST   Marker;
     806  CHAR16    *NewString;
     807
     808  VA_START (Marker, FormatString);
     809  NewString = CatVSPrint(String, FormatString, Marker);
     810  VA_END (Marker);
     811  return NewString;
     812}
     813
  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/PeiHobLibFramework/HobLib.c

    r48674 r58459  
    66 to implement HobLib BuildCvHob() API.
    77
    8 Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
     8Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
    99This program and the accompanying materials
    1010are licensed and made available under the terms and conditions of the BSD License
     
    306306
    307307/**
     308  Builds a HOB that describes a chunk of system memory with Owner GUID.
     309
     310  This function builds a HOB that describes a chunk of system memory.
     311  It can only be invoked during PEI phase;
     312  for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.
     313 
     314  If there is no additional space for HOB creation, then ASSERT().
     315
     316  @param  ResourceType        The type of resource described by this HOB.
     317  @param  ResourceAttribute   The resource attributes of the memory described by this HOB.
     318  @param  PhysicalStart       The 64 bit physical address of memory described by this HOB.
     319  @param  NumberOfBytes       The length of the memory described by this HOB in bytes.
     320  @param  OwnerGUID           GUID for the owner of this resource.
     321
     322**/
     323VOID
     324EFIAPI
     325BuildResourceDescriptorWithOwnerHob (
     326  IN EFI_RESOURCE_TYPE            ResourceType,
     327  IN EFI_RESOURCE_ATTRIBUTE_TYPE  ResourceAttribute,
     328  IN EFI_PHYSICAL_ADDRESS         PhysicalStart,
     329  IN UINT64                       NumberOfBytes,
     330  IN EFI_GUID                     *OwnerGUID
     331  )
     332{
     333  EFI_HOB_RESOURCE_DESCRIPTOR  *Hob;
     334
     335  Hob = InternalPeiCreateHob (EFI_HOB_TYPE_RESOURCE_DESCRIPTOR, (UINT16) sizeof (EFI_HOB_RESOURCE_DESCRIPTOR));
     336  if (Hob == NULL) {
     337    return;
     338  }
     339
     340  Hob->ResourceType      = ResourceType;
     341  Hob->ResourceAttribute = ResourceAttribute;
     342  Hob->PhysicalStart     = PhysicalStart;
     343  Hob->ResourceLength    = NumberOfBytes;
     344
     345  CopyGuid (&Hob->Owner, OwnerGUID);
     346}
     347
     348/**
    308349  Builds a HOB that describes a chunk of system memory.
    309350
     
    340381  Hob->PhysicalStart     = PhysicalStart;
    341382  Hob->ResourceLength    = NumberOfBytes;
     383  ZeroMem (&(Hob->Owner), sizeof (EFI_GUID));
    342384}
    343385
  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/PeiHobLibFramework/PeiHobLibFramework.inf

    r48674 r58459  
    66# to implement HobLib BuildCvHob() API.
    77#
    8 # Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
     8# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
    99#
    1010#  This program and the accompanying materials
     
    2121  INF_VERSION                    = 0x00010005
    2222  BASE_NAME                      = PeiHobLib
     23  MODULE_UNI_FILE                = PeiHobLib.uni
    2324  FILE_GUID                      = B6684612-6F5D-425d-952C-F462792EC00B
    2425  MODULE_TYPE                    = PEIM
     
    4546
    4647[Guids]
    47   gEfiHobMemoryAllocStackGuid                   ## PRODUCES ## HOB
    48   gEfiHobMemoryAllocBspStoreGuid                ## PRODUCES ## HOB
    49   gEfiHobMemoryAllocModuleGuid                  ## PRODUCES ## HOB
     48  gEfiHobMemoryAllocStackGuid                   ## SOMETIMES_PRODUCES ## HOB # MemoryAllocation StackHob
     49  gEfiHobMemoryAllocBspStoreGuid                ## SOMETIMES_PRODUCES ## HOB # MemoryAllocation BspStoreHob
     50  gEfiHobMemoryAllocModuleGuid                  ## SOMETIMES_PRODUCES ## HOB # MemoryAllocation ModuleHob
    5051
    5152#
    5253# [Hob]
    53 #   RESOURCE_DESCRIPTOR   ## PRODUCES
    54 #   MEMORY_ALLOCATION     ## PRODUCES
    55 #   GUID_EXTENSION        ## CONSUMES
    56 #   GUID_EXTENSION        ## PRODUCES
    57 #   CPU                   ## PRODUCES
    58 #   FV2                   ## PRODUCES
    59 #   FV                    ## PRODUCES
     54#   MEMORY_ALLOCATION     ## SOMETIMES_PRODUCES
     55#   RESOURCE_DESCRIPTOR   ## SOMETIMES_PRODUCES
     56#   FIRMWARE_VOLUME       ## SOMETIMES_PRODUCES
    6057#   
    6158
  • trunk/src/VBox/Devices/EFI/Firmware/IntelFrameworkPkg/Library/PeiSmbusLibSmbusPpi/PeiSmbusLibSmbusPpi.inf

    r48674 r58459  
    11## @file
    2 # Component description file for Pei Smbus Library.
     2# SMBUS library that layers on top of the SMBUS PPI.
    33#
    4 # SMBUS library that layers on top of the SMBUS PPI.
    5 # Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
     4# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
    65#
    76#  This program and the accompanying materials
     
    1817  INF_VERSION                    = 0x00010005
    1918  BASE_NAME                      = PeiSmbusLibSmbusPpi
     19  MODULE_UNI_FILE                = PeiSmbusLibSmbusPpi.uni
    2020  FILE_GUID                      = 51C4C059-67F0-4e3c-9A55-FF42A8291C8C
    2121  MODULE_TYPE                    = PEIM
     
    4848
    4949[Ppis]
    50   gEfiPeiSmbusPpiGuid                           # PPI ALWAYS_CONSUMED
     50  gEfiPeiSmbusPpiGuid                           ## CONSUMES
    5151
    5252[Depex]
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette