* [PATCH] MdePkg/UefiLib: Simplify protocol un/installation abstraction
@ 2019-02-04 20:16 Ashish Singhal
2019-02-19 16:19 ` Ashish Singhal
0 siblings, 1 reply; 4+ messages in thread
From: Ashish Singhal @ 2019-02-04 20:16 UTC (permalink / raw)
To: edk2-devel; +Cc: michael.d.kinney, liming.gao, Ashish Singhal
Add helper functions to operate upon protocol installation and
uninstallation instead of every function doing it by itself.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com>
---
MdePkg/Library/UefiLib/UefiDriverModel.c | 2040 +++++-------------------------
1 file changed, 342 insertions(+), 1698 deletions(-)
diff --git a/MdePkg/Library/UefiLib/UefiDriverModel.c b/MdePkg/Library/UefiLib/UefiDriverModel.c
index 262d8bc..268edf7 100644
--- a/MdePkg/Library/UefiLib/UefiDriverModel.c
+++ b/MdePkg/Library/UefiLib/UefiDriverModel.c
@@ -17,6 +17,290 @@
#include "UefiLibInternal.h"
+
+#define MAX_SUPPORTED_PROTOCOLS 7
+typedef struct {
+ EFI_GUID *Guid;
+ VOID *Interface;
+} EFI_PROCESS_PROTOCOL;
+
+
+static
+EFI_STATUS
+EFIAPI
+EfiLibProcessProtocols (
+ IN CONST EFI_HANDLE ImageHandle,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN BOOLEAN Install,
+ IN CONST EFI_PROCESS_PROTOCOL *ProtocolArray
+ )
+{
+ ASSERT (DriverBinding != NULL);
+ ASSERT (ProtocolArray != NULL);
+
+ if (Install) {
+ //
+ // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
+ //
+ DriverBinding->ImageHandle = ImageHandle;
+ DriverBinding->DriverBindingHandle = DriverBindingHandle;
+
+ return gBS->InstallMultipleProtocolInterfaces (
+ &DriverBinding->DriverBindingHandle,
+ ProtocolArray[0].Guid, ProtocolArray[0].Interface,
+ ProtocolArray[1].Guid, ProtocolArray[1].Interface,
+ ProtocolArray[2].Guid, ProtocolArray[2].Interface,
+ ProtocolArray[3].Guid, ProtocolArray[3].Interface,
+ ProtocolArray[4].Guid, ProtocolArray[4].Interface,
+ ProtocolArray[5].Guid, ProtocolArray[5].Interface,
+ ProtocolArray[6].Guid, ProtocolArray[6].Interface,
+ NULL
+ );
+ } else {
+ return gBS->UninstallMultipleProtocolInterfaces (
+ DriverBinding->DriverBindingHandle,
+ ProtocolArray[0].Guid, ProtocolArray[0].Interface,
+ ProtocolArray[1].Guid, ProtocolArray[1].Interface,
+ ProtocolArray[2].Guid, ProtocolArray[2].Interface,
+ ProtocolArray[3].Guid, ProtocolArray[3].Interface,
+ ProtocolArray[4].Guid, ProtocolArray[4].Interface,
+ ProtocolArray[5].Guid, ProtocolArray[5].Interface,
+ ProtocolArray[6].Guid, ProtocolArray[6].Interface,
+ NULL
+ );
+ }
+}
+
+
+
+static
+EFI_STATUS
+EFIAPI
+EfiLibProcessAllDriverProtocols (
+ IN CONST EFI_HANDLE ImageHandle,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN BOOLEAN Install,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName,
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration,
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics
+ )
+{
+ EFI_STATUS Status;
+ EFI_PROCESS_PROTOCOL ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
+ UINT8 ProtocolCount;
+
+ ASSERT (DriverBinding != NULL);
+
+ //
+ // ZI the ProtocolArray structure. Both InstallMultipleProtocolInterfaces
+ // and UninstallMultipleProtocolInterfaces would stop processing ProtocolArray
+ // elements as soon as they encounter a NULL.
+ //
+ ZeroMem(ProtocolArray, sizeof(ProtocolArray));
+ ProtocolCount = 0;
+
+ //
+ // Populate ProtocolArray with valid protocol interfaces.
+ //
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverBindingProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = DriverBinding;
+ ProtocolCount++;
+
+ if (ComponentName != NULL && !FeaturePcdGet(PcdComponentNameDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentNameProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName;
+ ProtocolCount++;
+ }
+
+ if (DriverConfiguration != NULL) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverConfigurationProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverConfiguration;
+ ProtocolCount++;
+ }
+
+ if (DriverDiagnostics != NULL && !FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverDiagnosticsProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverDiagnostics;
+ ProtocolCount++;
+ }
+
+ Status = EfiLibProcessProtocols (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ Install,
+ ProtocolArray
+ );
+
+ //
+ // ASSERT if the call to InstallMultipleProtocolInterfaces() or
+ // UninstallMultipleProtocolInterfaces() failed
+ //
+ ASSERT_EFI_ERROR (Status);
+
+ return Status;
+}
+
+
+
+static
+EFI_STATUS
+EFIAPI
+EfiLibProcessDriverBindingComponentName2 (
+ IN CONST EFI_HANDLE ImageHandle,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN BOOLEAN Install,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName,
+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2
+ )
+{
+ EFI_STATUS Status;
+ EFI_PROCESS_PROTOCOL ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
+ UINT8 ProtocolCount;
+
+ ASSERT (DriverBinding != NULL);
+
+ //
+ // ZI the ProtocolArray structure. Both InstallMultipleProtocolInterfaces
+ // and UninstallMultipleProtocolInterfaces would stop processing ProtocolArray
+ // elements as soon as they encounter a NULL.
+ //
+ ZeroMem(ProtocolArray, sizeof(ProtocolArray));
+ ProtocolCount = 0;
+
+ //
+ // Populate ProtocolArray with valid protocol interfaces.
+ //
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverBindingProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = DriverBinding;
+ ProtocolCount++;
+
+ if (ComponentName != NULL && !FeaturePcdGet(PcdComponentNameDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentNameProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName;
+ ProtocolCount++;
+ }
+
+ if (ComponentName2 != NULL && !FeaturePcdGet(PcdComponentName2Disable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentName2ProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName2;
+ ProtocolCount++;
+ }
+
+ Status = EfiLibProcessProtocols (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ Install,
+ ProtocolArray
+ );
+
+ //
+ // ASSERT if the call to InstallMultipleProtocolInterfaces() or
+ // UninstallMultipleProtocolInterfaces() failed
+ //
+ ASSERT_EFI_ERROR (Status);
+
+ return Status;
+}
+
+
+
+static
+EFI_STATUS
+EFIAPI
+EfiLibProcessAllDriverProtocols2 (
+ IN CONST EFI_HANDLE ImageHandle,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN BOOLEAN Install,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName,
+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2,
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration,
+ IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2,
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics,
+ IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2
+ )
+{
+ EFI_STATUS Status;
+ EFI_PROCESS_PROTOCOL ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
+ UINT8 ProtocolCount;
+
+ ASSERT (DriverBinding != NULL);
+
+ //
+ // ZI the ProtocolArray structure. Both InstallMultipleProtocolInterfaces
+ // and UninstallMultipleProtocolInterfaces would stop processing ProtocolArray
+ // elements as soon as they encounter a NULL.
+ //
+ ZeroMem(ProtocolArray, sizeof(ProtocolArray));
+ ProtocolCount = 0;
+
+ //
+ // Populate ProtocolArray with valid protocol interfaces.
+ //
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverBindingProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = DriverBinding;
+ ProtocolCount++;
+
+ if (ComponentName != NULL && !FeaturePcdGet(PcdComponentNameDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentNameProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName;
+ ProtocolCount++;
+ }
+
+ if (ComponentName2 != NULL && !FeaturePcdGet(PcdComponentName2Disable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentName2ProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName2;
+ ProtocolCount++;
+ }
+
+ if (DriverConfiguration != NULL) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverConfigurationProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverConfiguration;
+ ProtocolCount++;
+ }
+
+ if (DriverConfiguration2 != NULL) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverConfiguration2ProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverConfiguration2;
+ ProtocolCount++;
+ }
+
+ if (DriverDiagnostics != NULL && !FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverDiagnosticsProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverDiagnostics;
+ ProtocolCount++;
+ }
+
+ if (DriverDiagnostics2 != NULL && !FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverDiagnostics2ProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverDiagnostics2;
+ ProtocolCount++;
+ }
+
+ Status = EfiLibProcessProtocols (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ Install,
+ ProtocolArray
+ );
+
+ //
+ // ASSERT if the call to InstallMultipleProtocolInterfaces() or
+ // UninstallMultipleProtocolInterfaces() failed
+ //
+ ASSERT_EFI_ERROR (Status);
+
+ return Status;
+}
+
+
+
/**
Installs and completes the initialization of a Driver Binding Protocol instance.
@@ -148,96 +432,15 @@ EfiLibInstallAllDriverProtocols (
IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- //
- // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
- //
- DriverBinding->ImageHandle = ImageHandle;
- DriverBinding->DriverBindingHandle = DriverBindingHandle;
-
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverConfiguration == NULL) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- }
- } else {
- if (DriverConfiguration == NULL) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- }
-
- //
- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessAllDriverProtocols (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ TRUE,
+ ComponentName,
+ DriverConfiguration,
+ DriverDiagnostics
+ );
}
@@ -267,90 +470,15 @@ EfiLibUninstallAllDriverProtocols (
IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverConfiguration == NULL) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- }
- } else {
- if (DriverConfiguration == NULL) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- }
-
- //
- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessAllDriverProtocols (
+ NULL,
+ DriverBinding,
+ NULL,
+ FALSE,
+ ComponentName,
+ DriverConfiguration,
+ DriverDiagnostics
+ );
}
@@ -389,56 +517,14 @@ EfiLibInstallDriverBindingComponentName2 (
IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- //
- // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
- //
- DriverBinding->ImageHandle = ImageHandle;
- DriverBinding->DriverBindingHandle = DriverBindingHandle;
-
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- }
-
- //
- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessDriverBindingComponentName2 (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ TRUE,
+ ComponentName,
+ ComponentName2
+ );
}
@@ -465,50 +551,14 @@ EfiLibUninstallDriverBindingComponentName2 (
IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- }
-
- //
- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessDriverBindingComponentName2 (
+ NULL,
+ DriverBinding,
+ NULL,
+ FALSE,
+ ComponentName,
+ ComponentName2
+ );
}
@@ -557,724 +607,18 @@ EfiLibInstallAllDriverProtocols2 (
IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- //
- // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
- //
- DriverBinding->ImageHandle = ImageHandle;
- DriverBinding->DriverBindingHandle = DriverBindingHandle;
-
- if (DriverConfiguration2 == NULL) {
- if (DriverConfiguration == NULL) {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- } else {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- }
- } else {
- if (DriverConfiguration == NULL) {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- } else {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- }
- }
-
- //
- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessAllDriverProtocols2 (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ TRUE,
+ ComponentName,
+ ComponentName2,
+ DriverConfiguration,
+ DriverConfiguration2,
+ DriverDiagnostics,
+ DriverDiagnostics2
+ );
}
@@ -1311,716 +655,16 @@ EfiLibUninstallAllDriverProtocols2 (
IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- if (DriverConfiguration2 == NULL) {
- if (DriverConfiguration == NULL) {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- } else {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- }
- } else {
- if (DriverConfiguration == NULL) {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- } else {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- }
- }
-
- //
- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessAllDriverProtocols2 (
+ NULL,
+ DriverBinding,
+ NULL,
+ FALSE,
+ ComponentName,
+ ComponentName2,
+ DriverConfiguration,
+ DriverConfiguration2,
+ DriverDiagnostics,
+ DriverDiagnostics2
+ );
}
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] MdePkg/UefiLib: Simplify protocol un/installation abstraction
2019-02-04 20:16 [PATCH] MdePkg/UefiLib: Simplify protocol un/installation abstraction Ashish Singhal
@ 2019-02-19 16:19 ` Ashish Singhal
2019-02-19 19:56 ` Kinney, Michael D
0 siblings, 1 reply; 4+ messages in thread
From: Ashish Singhal @ 2019-02-19 16:19 UTC (permalink / raw)
To: edk2-devel@lists.01.org; +Cc: michael.d.kinney@intel.com, liming.gao@intel.com
Hello Mike/Lao,
Were you able to have a look at this?
Thanks
Ashish
-----Original Message-----
From: Ashish Singhal <ashishsingha@nvidia.com>
Sent: Monday, February 4, 2019 1:16 PM
To: edk2-devel@lists.01.org
Cc: michael.d.kinney@intel.com; liming.gao@intel.com; Ashish Singhal <ashishsingha@nvidia.com>
Subject: [PATCH] MdePkg/UefiLib: Simplify protocol un/installation abstraction
Add helper functions to operate upon protocol installation and
uninstallation instead of every function doing it by itself.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com>
---
MdePkg/Library/UefiLib/UefiDriverModel.c | 2040 +++++-------------------------
1 file changed, 342 insertions(+), 1698 deletions(-)
diff --git a/MdePkg/Library/UefiLib/UefiDriverModel.c b/MdePkg/Library/UefiLib/UefiDriverModel.c
index 262d8bc..268edf7 100644
--- a/MdePkg/Library/UefiLib/UefiDriverModel.c
+++ b/MdePkg/Library/UefiLib/UefiDriverModel.c
@@ -17,6 +17,290 @@
#include "UefiLibInternal.h"
+
+#define MAX_SUPPORTED_PROTOCOLS 7
+typedef struct {
+ EFI_GUID *Guid;
+ VOID *Interface;
+} EFI_PROCESS_PROTOCOL;
+
+
+static
+EFI_STATUS
+EFIAPI
+EfiLibProcessProtocols (
+ IN CONST EFI_HANDLE ImageHandle,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN BOOLEAN Install,
+ IN CONST EFI_PROCESS_PROTOCOL *ProtocolArray
+ )
+{
+ ASSERT (DriverBinding != NULL);
+ ASSERT (ProtocolArray != NULL);
+
+ if (Install) {
+ //
+ // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
+ //
+ DriverBinding->ImageHandle = ImageHandle;
+ DriverBinding->DriverBindingHandle = DriverBindingHandle;
+
+ return gBS->InstallMultipleProtocolInterfaces (
+ &DriverBinding->DriverBindingHandle,
+ ProtocolArray[0].Guid, ProtocolArray[0].Interface,
+ ProtocolArray[1].Guid, ProtocolArray[1].Interface,
+ ProtocolArray[2].Guid, ProtocolArray[2].Interface,
+ ProtocolArray[3].Guid, ProtocolArray[3].Interface,
+ ProtocolArray[4].Guid, ProtocolArray[4].Interface,
+ ProtocolArray[5].Guid, ProtocolArray[5].Interface,
+ ProtocolArray[6].Guid, ProtocolArray[6].Interface,
+ NULL
+ );
+ } else {
+ return gBS->UninstallMultipleProtocolInterfaces (
+ DriverBinding->DriverBindingHandle,
+ ProtocolArray[0].Guid, ProtocolArray[0].Interface,
+ ProtocolArray[1].Guid, ProtocolArray[1].Interface,
+ ProtocolArray[2].Guid, ProtocolArray[2].Interface,
+ ProtocolArray[3].Guid, ProtocolArray[3].Interface,
+ ProtocolArray[4].Guid, ProtocolArray[4].Interface,
+ ProtocolArray[5].Guid, ProtocolArray[5].Interface,
+ ProtocolArray[6].Guid, ProtocolArray[6].Interface,
+ NULL
+ );
+ }
+}
+
+
+
+static
+EFI_STATUS
+EFIAPI
+EfiLibProcessAllDriverProtocols (
+ IN CONST EFI_HANDLE ImageHandle,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN BOOLEAN Install,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName,
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration,
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics
+ )
+{
+ EFI_STATUS Status;
+ EFI_PROCESS_PROTOCOL ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
+ UINT8 ProtocolCount;
+
+ ASSERT (DriverBinding != NULL);
+
+ //
+ // ZI the ProtocolArray structure. Both InstallMultipleProtocolInterfaces
+ // and UninstallMultipleProtocolInterfaces would stop processing ProtocolArray
+ // elements as soon as they encounter a NULL.
+ //
+ ZeroMem(ProtocolArray, sizeof(ProtocolArray));
+ ProtocolCount = 0;
+
+ //
+ // Populate ProtocolArray with valid protocol interfaces.
+ //
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverBindingProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = DriverBinding;
+ ProtocolCount++;
+
+ if (ComponentName != NULL && !FeaturePcdGet(PcdComponentNameDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentNameProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName;
+ ProtocolCount++;
+ }
+
+ if (DriverConfiguration != NULL) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverConfigurationProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverConfiguration;
+ ProtocolCount++;
+ }
+
+ if (DriverDiagnostics != NULL && !FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverDiagnosticsProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverDiagnostics;
+ ProtocolCount++;
+ }
+
+ Status = EfiLibProcessProtocols (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ Install,
+ ProtocolArray
+ );
+
+ //
+ // ASSERT if the call to InstallMultipleProtocolInterfaces() or
+ // UninstallMultipleProtocolInterfaces() failed
+ //
+ ASSERT_EFI_ERROR (Status);
+
+ return Status;
+}
+
+
+
+static
+EFI_STATUS
+EFIAPI
+EfiLibProcessDriverBindingComponentName2 (
+ IN CONST EFI_HANDLE ImageHandle,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN BOOLEAN Install,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName,
+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2
+ )
+{
+ EFI_STATUS Status;
+ EFI_PROCESS_PROTOCOL ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
+ UINT8 ProtocolCount;
+
+ ASSERT (DriverBinding != NULL);
+
+ //
+ // ZI the ProtocolArray structure. Both InstallMultipleProtocolInterfaces
+ // and UninstallMultipleProtocolInterfaces would stop processing ProtocolArray
+ // elements as soon as they encounter a NULL.
+ //
+ ZeroMem(ProtocolArray, sizeof(ProtocolArray));
+ ProtocolCount = 0;
+
+ //
+ // Populate ProtocolArray with valid protocol interfaces.
+ //
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverBindingProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = DriverBinding;
+ ProtocolCount++;
+
+ if (ComponentName != NULL && !FeaturePcdGet(PcdComponentNameDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentNameProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName;
+ ProtocolCount++;
+ }
+
+ if (ComponentName2 != NULL && !FeaturePcdGet(PcdComponentName2Disable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentName2ProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName2;
+ ProtocolCount++;
+ }
+
+ Status = EfiLibProcessProtocols (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ Install,
+ ProtocolArray
+ );
+
+ //
+ // ASSERT if the call to InstallMultipleProtocolInterfaces() or
+ // UninstallMultipleProtocolInterfaces() failed
+ //
+ ASSERT_EFI_ERROR (Status);
+
+ return Status;
+}
+
+
+
+static
+EFI_STATUS
+EFIAPI
+EfiLibProcessAllDriverProtocols2 (
+ IN CONST EFI_HANDLE ImageHandle,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN BOOLEAN Install,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName,
+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2,
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration,
+ IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2,
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics,
+ IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2
+ )
+{
+ EFI_STATUS Status;
+ EFI_PROCESS_PROTOCOL ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
+ UINT8 ProtocolCount;
+
+ ASSERT (DriverBinding != NULL);
+
+ //
+ // ZI the ProtocolArray structure. Both InstallMultipleProtocolInterfaces
+ // and UninstallMultipleProtocolInterfaces would stop processing ProtocolArray
+ // elements as soon as they encounter a NULL.
+ //
+ ZeroMem(ProtocolArray, sizeof(ProtocolArray));
+ ProtocolCount = 0;
+
+ //
+ // Populate ProtocolArray with valid protocol interfaces.
+ //
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverBindingProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = DriverBinding;
+ ProtocolCount++;
+
+ if (ComponentName != NULL && !FeaturePcdGet(PcdComponentNameDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentNameProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName;
+ ProtocolCount++;
+ }
+
+ if (ComponentName2 != NULL && !FeaturePcdGet(PcdComponentName2Disable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiComponentName2ProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)ComponentName2;
+ ProtocolCount++;
+ }
+
+ if (DriverConfiguration != NULL) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverConfigurationProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverConfiguration;
+ ProtocolCount++;
+ }
+
+ if (DriverConfiguration2 != NULL) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverConfiguration2ProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverConfiguration2;
+ ProtocolCount++;
+ }
+
+ if (DriverDiagnostics != NULL && !FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverDiagnosticsProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverDiagnostics;
+ ProtocolCount++;
+ }
+
+ if (DriverDiagnostics2 != NULL && !FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
+ ProtocolArray[ProtocolCount].Guid = &gEfiDriverDiagnostics2ProtocolGuid;
+ ProtocolArray[ProtocolCount].Interface = (VOID *)DriverDiagnostics2;
+ ProtocolCount++;
+ }
+
+ Status = EfiLibProcessProtocols (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ Install,
+ ProtocolArray
+ );
+
+ //
+ // ASSERT if the call to InstallMultipleProtocolInterfaces() or
+ // UninstallMultipleProtocolInterfaces() failed
+ //
+ ASSERT_EFI_ERROR (Status);
+
+ return Status;
+}
+
+
+
/**
Installs and completes the initialization of a Driver Binding Protocol instance.
@@ -148,96 +432,15 @@ EfiLibInstallAllDriverProtocols (
IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- //
- // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
- //
- DriverBinding->ImageHandle = ImageHandle;
- DriverBinding->DriverBindingHandle = DriverBindingHandle;
-
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverConfiguration == NULL) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- }
- } else {
- if (DriverConfiguration == NULL) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- }
-
- //
- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessAllDriverProtocols (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ TRUE,
+ ComponentName,
+ DriverConfiguration,
+ DriverDiagnostics
+ );
}
@@ -267,90 +470,15 @@ EfiLibUninstallAllDriverProtocols (
IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverConfiguration == NULL) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- }
- } else {
- if (DriverConfiguration == NULL) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- }
-
- //
- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessAllDriverProtocols (
+ NULL,
+ DriverBinding,
+ NULL,
+ FALSE,
+ ComponentName,
+ DriverConfiguration,
+ DriverDiagnostics
+ );
}
@@ -389,56 +517,14 @@ EfiLibInstallDriverBindingComponentName2 (
IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- //
- // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
- //
- DriverBinding->ImageHandle = ImageHandle;
- DriverBinding->DriverBindingHandle = DriverBindingHandle;
-
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- }
-
- //
- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessDriverBindingComponentName2 (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ TRUE,
+ ComponentName,
+ ComponentName2
+ );
}
@@ -465,50 +551,14 @@ EfiLibUninstallDriverBindingComponentName2 (
IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- }
-
- //
- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessDriverBindingComponentName2 (
+ NULL,
+ DriverBinding,
+ NULL,
+ FALSE,
+ ComponentName,
+ ComponentName2
+ );
}
@@ -557,724 +607,18 @@ EfiLibInstallAllDriverProtocols2 (
IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- //
- // Update the ImageHandle and DriverBindingHandle fields of the Driver Binding Protocol
- //
- DriverBinding->ImageHandle = ImageHandle;
- DriverBinding->DriverBindingHandle = DriverBindingHandle;
-
- if (DriverConfiguration2 == NULL) {
- if (DriverConfiguration == NULL) {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- } else {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- }
- } else {
- if (DriverConfiguration == NULL) {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- } else {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->InstallMultipleProtocolInterfaces (
- &DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- }
- }
-
- //
- // ASSERT if the call to InstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessAllDriverProtocols2 (
+ ImageHandle,
+ DriverBinding,
+ DriverBindingHandle,
+ TRUE,
+ ComponentName,
+ ComponentName2,
+ DriverConfiguration,
+ DriverConfiguration2,
+ DriverDiagnostics,
+ DriverDiagnostics2
+ );
}
@@ -1311,716 +655,16 @@ EfiLibUninstallAllDriverProtocols2 (
IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL
)
{
- EFI_STATUS Status;
-
- ASSERT (DriverBinding != NULL);
-
- if (DriverConfiguration2 == NULL) {
- if (DriverConfiguration == NULL) {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- } else {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- }
- } else {
- if (DriverConfiguration == NULL) {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- } else {
- if (DriverDiagnostics == NULL || FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- } else {
- if (DriverDiagnostics2 == NULL || FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- NULL
- );
- }
- }
- } else {
- if (ComponentName == NULL || FeaturePcdGet(PcdComponentNameDisable)) {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- } else {
- if (ComponentName2 == NULL || FeaturePcdGet(PcdComponentName2Disable)) {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- } else {
- Status = gBS->UninstallMultipleProtocolInterfaces (
- DriverBinding->DriverBindingHandle,
- &gEfiDriverBindingProtocolGuid, DriverBinding,
- &gEfiComponentNameProtocolGuid, ComponentName,
- &gEfiComponentName2ProtocolGuid, ComponentName2,
- &gEfiDriverConfigurationProtocolGuid, DriverConfiguration,
- &gEfiDriverConfiguration2ProtocolGuid, DriverConfiguration2,
- &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
- &gEfiDriverDiagnostics2ProtocolGuid, DriverDiagnostics2,
- NULL
- );
- }
- }
- }
- }
- }
- }
-
- //
- // ASSERT if the call to UninstallMultipleProtocolInterfaces() failed
- //
- ASSERT_EFI_ERROR (Status);
-
- return Status;
+ return EfiLibProcessAllDriverProtocols2 (
+ NULL,
+ DriverBinding,
+ NULL,
+ FALSE,
+ ComponentName,
+ ComponentName2,
+ DriverConfiguration,
+ DriverConfiguration2,
+ DriverDiagnostics,
+ DriverDiagnostics2
+ );
}
--
2.7.4
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] MdePkg/UefiLib: Simplify protocol un/installation abstraction
2019-02-19 16:19 ` Ashish Singhal
@ 2019-02-19 19:56 ` Kinney, Michael D
2019-02-25 19:09 ` Ashish Singhal
0 siblings, 1 reply; 4+ messages in thread
From: Kinney, Michael D @ 2019-02-19 19:56 UTC (permalink / raw)
To: Ashish Singhal, edk2-devel@lists.01.org, Kinney, Michael D; +Cc: Gao, Liming
Ashish,
Thanks for looking at simplifying this logic again.
I have not had a chance to run the size analysis yet.
I will get back to you in a couple of days.
Thanks,
Mike
> -----Original Message-----
> From: Ashish Singhal [mailto:ashishsingha@nvidia.com]
> Sent: Tuesday, February 19, 2019 8:19 AM
> To: edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>;
> Gao, Liming <liming.gao@intel.com>
> Subject: RE: [PATCH] MdePkg/UefiLib: Simplify protocol
> un/installation abstraction
>
> Hello Mike/Lao,
>
> Were you able to have a look at this?
>
> Thanks
> Ashish
>
> -----Original Message-----
> From: Ashish Singhal <ashishsingha@nvidia.com>
> Sent: Monday, February 4, 2019 1:16 PM
> To: edk2-devel@lists.01.org
> Cc: michael.d.kinney@intel.com; liming.gao@intel.com;
> Ashish Singhal <ashishsingha@nvidia.com>
> Subject: [PATCH] MdePkg/UefiLib: Simplify protocol
> un/installation abstraction
>
> Add helper functions to operate upon protocol
> installation and
> uninstallation instead of every function doing it by
> itself.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com>
> ---
> MdePkg/Library/UefiLib/UefiDriverModel.c | 2040 +++++-
> ------------------------
> 1 file changed, 342 insertions(+), 1698 deletions(-)
>
> diff --git a/MdePkg/Library/UefiLib/UefiDriverModel.c
> b/MdePkg/Library/UefiLib/UefiDriverModel.c
> index 262d8bc..268edf7 100644
> --- a/MdePkg/Library/UefiLib/UefiDriverModel.c
> +++ b/MdePkg/Library/UefiLib/UefiDriverModel.c
> @@ -17,6 +17,290 @@
>
> #include "UefiLibInternal.h"
>
> +
> +#define MAX_SUPPORTED_PROTOCOLS 7
> +typedef struct {
> + EFI_GUID *Guid;
> + VOID *Interface;
> +} EFI_PROCESS_PROTOCOL;
> +
> +
> +static
> +EFI_STATUS
> +EFIAPI
> +EfiLibProcessProtocols (
> + IN CONST EFI_HANDLE
> ImageHandle,
> + IN EFI_DRIVER_BINDING_PROTOCOL
> *DriverBinding,
> + IN EFI_HANDLE
> DriverBindingHandle,
> + IN BOOLEAN Install,
> + IN CONST EFI_PROCESS_PROTOCOL
> *ProtocolArray
> + )
> +{
> + ASSERT (DriverBinding != NULL);
> + ASSERT (ProtocolArray != NULL);
> +
> + if (Install) {
> + //
> + // Update the ImageHandle and DriverBindingHandle
> fields of the Driver Binding Protocol
> + //
> + DriverBinding->ImageHandle = ImageHandle;
> + DriverBinding->DriverBindingHandle =
> DriverBindingHandle;
> +
> + return gBS->InstallMultipleProtocolInterfaces (
> + &DriverBinding->DriverBindingHandle,
> + ProtocolArray[0].Guid,
> ProtocolArray[0].Interface,
> + ProtocolArray[1].Guid,
> ProtocolArray[1].Interface,
> + ProtocolArray[2].Guid,
> ProtocolArray[2].Interface,
> + ProtocolArray[3].Guid,
> ProtocolArray[3].Interface,
> + ProtocolArray[4].Guid,
> ProtocolArray[4].Interface,
> + ProtocolArray[5].Guid,
> ProtocolArray[5].Interface,
> + ProtocolArray[6].Guid,
> ProtocolArray[6].Interface,
> + NULL
> + );
> + } else {
> + return gBS->UninstallMultipleProtocolInterfaces (
> + DriverBinding->DriverBindingHandle,
> + ProtocolArray[0].Guid,
> ProtocolArray[0].Interface,
> + ProtocolArray[1].Guid,
> ProtocolArray[1].Interface,
> + ProtocolArray[2].Guid,
> ProtocolArray[2].Interface,
> + ProtocolArray[3].Guid,
> ProtocolArray[3].Interface,
> + ProtocolArray[4].Guid,
> ProtocolArray[4].Interface,
> + ProtocolArray[5].Guid,
> ProtocolArray[5].Interface,
> + ProtocolArray[6].Guid,
> ProtocolArray[6].Interface,
> + NULL
> + );
> + }
> +}
> +
> +
> +
> +static
> +EFI_STATUS
> +EFIAPI
> +EfiLibProcessAllDriverProtocols (
> + IN CONST EFI_HANDLE
> ImageHandle,
> + IN EFI_DRIVER_BINDING_PROTOCOL
> *DriverBinding,
> + IN EFI_HANDLE
> DriverBindingHandle,
> + IN BOOLEAN Install,
> + IN CONST EFI_COMPONENT_NAME_PROTOCOL
> *ComponentName,
> + IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
> *DriverConfiguration,
> + IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
> *DriverDiagnostics
> + )
> +{
> + EFI_STATUS Status;
> + EFI_PROCESS_PROTOCOL
> ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
> + UINT8 ProtocolCount;
> +
> + ASSERT (DriverBinding != NULL);
> +
> + //
> + // ZI the ProtocolArray structure. Both
> InstallMultipleProtocolInterfaces
> + // and UninstallMultipleProtocolInterfaces would
> stop processing ProtocolArray
> + // elements as soon as they encounter a NULL.
> + //
> + ZeroMem(ProtocolArray, sizeof(ProtocolArray));
> + ProtocolCount = 0;
> +
> + //
> + // Populate ProtocolArray with valid protocol
> interfaces.
> + //
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverBindingProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface =
> DriverBinding;
> + ProtocolCount++;
> +
> + if (ComponentName != NULL &&
> !FeaturePcdGet(PcdComponentNameDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentNameProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName;
> + ProtocolCount++;
> + }
> +
> + if (DriverConfiguration != NULL) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverConfigurationProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverConfiguration;
> + ProtocolCount++;
> + }
> +
> + if (DriverDiagnostics != NULL &&
> !FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverDiagnosticsProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverDiagnostics;
> + ProtocolCount++;
> + }
> +
> + Status = EfiLibProcessProtocols (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + Install,
> + ProtocolArray
> + );
> +
> + //
> + // ASSERT if the call to
> InstallMultipleProtocolInterfaces() or
> + // UninstallMultipleProtocolInterfaces() failed
> + //
> + ASSERT_EFI_ERROR (Status);
> +
> + return Status;
> +}
> +
> +
> +
> +static
> +EFI_STATUS
> +EFIAPI
> +EfiLibProcessDriverBindingComponentName2 (
> + IN CONST EFI_HANDLE
> ImageHandle,
> + IN EFI_DRIVER_BINDING_PROTOCOL
> *DriverBinding,
> + IN EFI_HANDLE
> DriverBindingHandle,
> + IN BOOLEAN Install,
> + IN CONST EFI_COMPONENT_NAME_PROTOCOL
> *ComponentName,
> + IN CONST EFI_COMPONENT_NAME2_PROTOCOL
> *ComponentName2
> + )
> +{
> + EFI_STATUS Status;
> + EFI_PROCESS_PROTOCOL
> ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
> + UINT8 ProtocolCount;
> +
> + ASSERT (DriverBinding != NULL);
> +
> + //
> + // ZI the ProtocolArray structure. Both
> InstallMultipleProtocolInterfaces
> + // and UninstallMultipleProtocolInterfaces would
> stop processing ProtocolArray
> + // elements as soon as they encounter a NULL.
> + //
> + ZeroMem(ProtocolArray, sizeof(ProtocolArray));
> + ProtocolCount = 0;
> +
> + //
> + // Populate ProtocolArray with valid protocol
> interfaces.
> + //
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverBindingProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface =
> DriverBinding;
> + ProtocolCount++;
> +
> + if (ComponentName != NULL &&
> !FeaturePcdGet(PcdComponentNameDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentNameProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName;
> + ProtocolCount++;
> + }
> +
> + if (ComponentName2 != NULL &&
> !FeaturePcdGet(PcdComponentName2Disable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentName2ProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName2;
> + ProtocolCount++;
> + }
> +
> + Status = EfiLibProcessProtocols (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + Install,
> + ProtocolArray
> + );
> +
> + //
> + // ASSERT if the call to
> InstallMultipleProtocolInterfaces() or
> + // UninstallMultipleProtocolInterfaces() failed
> + //
> + ASSERT_EFI_ERROR (Status);
> +
> + return Status;
> +}
> +
> +
> +
> +static
> +EFI_STATUS
> +EFIAPI
> +EfiLibProcessAllDriverProtocols2 (
> + IN CONST EFI_HANDLE
> ImageHandle,
> + IN EFI_DRIVER_BINDING_PROTOCOL
> *DriverBinding,
> + IN EFI_HANDLE
> DriverBindingHandle,
> + IN BOOLEAN Install,
> + IN CONST EFI_COMPONENT_NAME_PROTOCOL
> *ComponentName,
> + IN CONST EFI_COMPONENT_NAME2_PROTOCOL
> *ComponentName2,
> + IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
> *DriverConfiguration,
> + IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL
> *DriverConfiguration2,
> + IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
> *DriverDiagnostics,
> + IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
> *DriverDiagnostics2
> + )
> +{
> + EFI_STATUS Status;
> + EFI_PROCESS_PROTOCOL
> ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
> + UINT8 ProtocolCount;
> +
> + ASSERT (DriverBinding != NULL);
> +
> + //
> + // ZI the ProtocolArray structure. Both
> InstallMultipleProtocolInterfaces
> + // and UninstallMultipleProtocolInterfaces would
> stop processing ProtocolArray
> + // elements as soon as they encounter a NULL.
> + //
> + ZeroMem(ProtocolArray, sizeof(ProtocolArray));
> + ProtocolCount = 0;
> +
> + //
> + // Populate ProtocolArray with valid protocol
> interfaces.
> + //
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverBindingProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface =
> DriverBinding;
> + ProtocolCount++;
> +
> + if (ComponentName != NULL &&
> !FeaturePcdGet(PcdComponentNameDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentNameProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName;
> + ProtocolCount++;
> + }
> +
> + if (ComponentName2 != NULL &&
> !FeaturePcdGet(PcdComponentName2Disable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentName2ProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName2;
> + ProtocolCount++;
> + }
> +
> + if (DriverConfiguration != NULL) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverConfigurationProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverConfiguration;
> + ProtocolCount++;
> + }
> +
> + if (DriverConfiguration2 != NULL) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverConfiguration2ProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverConfiguration2;
> + ProtocolCount++;
> + }
> +
> + if (DriverDiagnostics != NULL &&
> !FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverDiagnosticsProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverDiagnostics;
> + ProtocolCount++;
> + }
> +
> + if (DriverDiagnostics2 != NULL &&
> !FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverDiagnostics2ProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverDiagnostics2;
> + ProtocolCount++;
> + }
> +
> + Status = EfiLibProcessProtocols (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + Install,
> + ProtocolArray
> + );
> +
> + //
> + // ASSERT if the call to
> InstallMultipleProtocolInterfaces() or
> + // UninstallMultipleProtocolInterfaces() failed
> + //
> + ASSERT_EFI_ERROR (Status);
> +
> + return Status;
> +}
> +
> +
> +
> /**
> Installs and completes the initialization of a
> Driver Binding Protocol instance.
>
> @@ -148,96 +432,15 @@ EfiLibInstallAllDriverProtocols (
> IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
> *DriverDiagnostics OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - //
> - // Update the ImageHandle and DriverBindingHandle
> fields of the Driver Binding Protocol
> - //
> - DriverBinding->ImageHandle = ImageHandle;
> - DriverBinding->DriverBindingHandle =
> DriverBindingHandle;
> -
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverConfiguration == NULL) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (DriverConfiguration == NULL) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid,
> DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid,
> DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> InstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessAllDriverProtocols (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + TRUE,
> + ComponentName,
> + DriverConfiguration,
> + DriverDiagnostics
> + );
> }
>
>
> @@ -267,90 +470,15 @@ EfiLibUninstallAllDriverProtocols
> (
> IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
> *DriverDiagnostics OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverConfiguration == NULL) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (DriverConfiguration == NULL) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid,
> DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid,
> DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> UninstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessAllDriverProtocols (
> + NULL,
> + DriverBinding,
> + NULL,
> + FALSE,
> + ComponentName,
> + DriverConfiguration,
> + DriverDiagnostics
> + );
> }
>
>
> @@ -389,56 +517,14 @@
> EfiLibInstallDriverBindingComponentName2 (
> IN CONST EFI_COMPONENT_NAME2_PROTOCOL
> *ComponentName2 OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - //
> - // Update the ImageHandle and DriverBindingHandle
> fields of the Driver Binding Protocol
> - //
> - DriverBinding->ImageHandle = ImageHandle;
> - DriverBinding->DriverBindingHandle =
> DriverBindingHandle;
> -
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentName2ProtocolGuid,
> ComponentName2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentNameProtocolGuid,
> ComponentName,
> - NULL
> - );
> - } else {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentNameProtocolGuid,
> ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> InstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessDriverBindingComponentName2 (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + TRUE,
> + ComponentName,
> + ComponentName2
> + );
> }
>
>
> @@ -465,50 +551,14 @@
> EfiLibUninstallDriverBindingComponentName2 (
> IN CONST EFI_COMPONENT_NAME2_PROTOCOL
> *ComponentName2 OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentName2ProtocolGuid,
> ComponentName2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentNameProtocolGuid,
> ComponentName,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentNameProtocolGuid,
> ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> UninstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessDriverBindingComponentName2 (
> + NULL,
> + DriverBinding,
> + NULL,
> + FALSE,
> + ComponentName,
> + ComponentName2
> + );
> }
>
>
> @@ -557,724 +607,18 @@ EfiLibInstallAllDriverProtocols2
> (
> IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
> *DriverDiagnostics2 OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - //
> - // Update the ImageHandle and DriverBindingHandle
> fields of the Driver Binding Protocol
> - //
> - DriverBinding->ImageHandle = ImageHandle;
> - DriverBinding->DriverBindingHandle =
> DriverBindingHandle;
> -
> - if (DriverConfiguration2 == NULL) {
> - if (DriverConfiguration == NULL) {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverConfiguration == NULL) {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> InstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessAllDriverProtocols2 (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + TRUE,
> + ComponentName,
> + ComponentName2,
> + DriverConfiguration,
> + DriverConfiguration2,
> + DriverDiagnostics,
> + DriverDiagnostics2
> + );
> }
>
>
> @@ -1311,716 +655,16 @@
> EfiLibUninstallAllDriverProtocols2 (
> IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
> *DriverDiagnostics2 OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - if (DriverConfiguration2 == NULL) {
> - if (DriverConfiguration == NULL) {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverConfiguration == NULL) {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> UninstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessAllDriverProtocols2 (
> + NULL,
> + DriverBinding,
> + NULL,
> + FALSE,
> + ComponentName,
> + ComponentName2,
> + DriverConfiguration,
> + DriverConfiguration2,
> + DriverDiagnostics,
> + DriverDiagnostics2
> + );
> }
> --
> 2.7.4
>
> -------------------------------------------------------
> ----------------------------
> This email message is for the sole use of the intended
> recipient(s) and may contain
> confidential information. Any unauthorized review,
> use, disclosure or distribution
> is prohibited. If you are not the intended recipient,
> please contact the sender by
> reply email and destroy all copies of the original
> message.
> -------------------------------------------------------
> ----------------------------
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] MdePkg/UefiLib: Simplify protocol un/installation abstraction
2019-02-19 19:56 ` Kinney, Michael D
@ 2019-02-25 19:09 ` Ashish Singhal
0 siblings, 0 replies; 4+ messages in thread
From: Ashish Singhal @ 2019-02-25 19:09 UTC (permalink / raw)
To: Kinney, Michael D, edk2-devel@lists.01.org; +Cc: Gao, Liming
Mike,
Do you have any update on this change yet?
Thanks
Ashish
-----Original Message-----
From: Kinney, Michael D <michael.d.kinney@intel.com>
Sent: Tuesday, February 19, 2019 12:56 PM
To: Ashish Singhal <ashishsingha@nvidia.com>; edk2-devel@lists.01.org; Kinney, Michael D <michael.d.kinney@intel.com>
Cc: Gao, Liming <liming.gao@intel.com>
Subject: RE: [PATCH] MdePkg/UefiLib: Simplify protocol un/installation abstraction
Ashish,
Thanks for looking at simplifying this logic again.
I have not had a chance to run the size analysis yet.
I will get back to you in a couple of days.
Thanks,
Mike
> -----Original Message-----
> From: Ashish Singhal [mailto:ashishsingha@nvidia.com]
> Sent: Tuesday, February 19, 2019 8:19 AM
> To: edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>;
> Gao, Liming <liming.gao@intel.com>
> Subject: RE: [PATCH] MdePkg/UefiLib: Simplify protocol
> un/installation abstraction
>
> Hello Mike/Lao,
>
> Were you able to have a look at this?
>
> Thanks
> Ashish
>
> -----Original Message-----
> From: Ashish Singhal <ashishsingha@nvidia.com>
> Sent: Monday, February 4, 2019 1:16 PM
> To: edk2-devel@lists.01.org
> Cc: michael.d.kinney@intel.com; liming.gao@intel.com;
> Ashish Singhal <ashishsingha@nvidia.com>
> Subject: [PATCH] MdePkg/UefiLib: Simplify protocol
> un/installation abstraction
>
> Add helper functions to operate upon protocol
> installation and
> uninstallation instead of every function doing it by
> itself.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com>
> ---
> MdePkg/Library/UefiLib/UefiDriverModel.c | 2040 +++++-
> ------------------------
> 1 file changed, 342 insertions(+), 1698 deletions(-)
>
> diff --git a/MdePkg/Library/UefiLib/UefiDriverModel.c
> b/MdePkg/Library/UefiLib/UefiDriverModel.c
> index 262d8bc..268edf7 100644
> --- a/MdePkg/Library/UefiLib/UefiDriverModel.c
> +++ b/MdePkg/Library/UefiLib/UefiDriverModel.c
> @@ -17,6 +17,290 @@
>
> #include "UefiLibInternal.h"
>
> +
> +#define MAX_SUPPORTED_PROTOCOLS 7
> +typedef struct {
> + EFI_GUID *Guid;
> + VOID *Interface;
> +} EFI_PROCESS_PROTOCOL;
> +
> +
> +static
> +EFI_STATUS
> +EFIAPI
> +EfiLibProcessProtocols (
> + IN CONST EFI_HANDLE
> ImageHandle,
> + IN EFI_DRIVER_BINDING_PROTOCOL
> *DriverBinding,
> + IN EFI_HANDLE
> DriverBindingHandle,
> + IN BOOLEAN Install,
> + IN CONST EFI_PROCESS_PROTOCOL
> *ProtocolArray
> + )
> +{
> + ASSERT (DriverBinding != NULL);
> + ASSERT (ProtocolArray != NULL);
> +
> + if (Install) {
> + //
> + // Update the ImageHandle and DriverBindingHandle
> fields of the Driver Binding Protocol
> + //
> + DriverBinding->ImageHandle = ImageHandle;
> + DriverBinding->DriverBindingHandle =
> DriverBindingHandle;
> +
> + return gBS->InstallMultipleProtocolInterfaces (
> + &DriverBinding->DriverBindingHandle,
> + ProtocolArray[0].Guid,
> ProtocolArray[0].Interface,
> + ProtocolArray[1].Guid,
> ProtocolArray[1].Interface,
> + ProtocolArray[2].Guid,
> ProtocolArray[2].Interface,
> + ProtocolArray[3].Guid,
> ProtocolArray[3].Interface,
> + ProtocolArray[4].Guid,
> ProtocolArray[4].Interface,
> + ProtocolArray[5].Guid,
> ProtocolArray[5].Interface,
> + ProtocolArray[6].Guid,
> ProtocolArray[6].Interface,
> + NULL
> + );
> + } else {
> + return gBS->UninstallMultipleProtocolInterfaces (
> + DriverBinding->DriverBindingHandle,
> + ProtocolArray[0].Guid,
> ProtocolArray[0].Interface,
> + ProtocolArray[1].Guid,
> ProtocolArray[1].Interface,
> + ProtocolArray[2].Guid,
> ProtocolArray[2].Interface,
> + ProtocolArray[3].Guid,
> ProtocolArray[3].Interface,
> + ProtocolArray[4].Guid,
> ProtocolArray[4].Interface,
> + ProtocolArray[5].Guid,
> ProtocolArray[5].Interface,
> + ProtocolArray[6].Guid,
> ProtocolArray[6].Interface,
> + NULL
> + );
> + }
> +}
> +
> +
> +
> +static
> +EFI_STATUS
> +EFIAPI
> +EfiLibProcessAllDriverProtocols (
> + IN CONST EFI_HANDLE
> ImageHandle,
> + IN EFI_DRIVER_BINDING_PROTOCOL
> *DriverBinding,
> + IN EFI_HANDLE
> DriverBindingHandle,
> + IN BOOLEAN Install,
> + IN CONST EFI_COMPONENT_NAME_PROTOCOL
> *ComponentName,
> + IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
> *DriverConfiguration,
> + IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
> *DriverDiagnostics
> + )
> +{
> + EFI_STATUS Status;
> + EFI_PROCESS_PROTOCOL
> ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
> + UINT8 ProtocolCount;
> +
> + ASSERT (DriverBinding != NULL);
> +
> + //
> + // ZI the ProtocolArray structure. Both
> InstallMultipleProtocolInterfaces
> + // and UninstallMultipleProtocolInterfaces would
> stop processing ProtocolArray
> + // elements as soon as they encounter a NULL.
> + //
> + ZeroMem(ProtocolArray, sizeof(ProtocolArray));
> + ProtocolCount = 0;
> +
> + //
> + // Populate ProtocolArray with valid protocol
> interfaces.
> + //
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverBindingProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface =
> DriverBinding;
> + ProtocolCount++;
> +
> + if (ComponentName != NULL &&
> !FeaturePcdGet(PcdComponentNameDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentNameProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName;
> + ProtocolCount++;
> + }
> +
> + if (DriverConfiguration != NULL) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverConfigurationProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverConfiguration;
> + ProtocolCount++;
> + }
> +
> + if (DriverDiagnostics != NULL &&
> !FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverDiagnosticsProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverDiagnostics;
> + ProtocolCount++;
> + }
> +
> + Status = EfiLibProcessProtocols (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + Install,
> + ProtocolArray
> + );
> +
> + //
> + // ASSERT if the call to
> InstallMultipleProtocolInterfaces() or
> + // UninstallMultipleProtocolInterfaces() failed
> + //
> + ASSERT_EFI_ERROR (Status);
> +
> + return Status;
> +}
> +
> +
> +
> +static
> +EFI_STATUS
> +EFIAPI
> +EfiLibProcessDriverBindingComponentName2 (
> + IN CONST EFI_HANDLE
> ImageHandle,
> + IN EFI_DRIVER_BINDING_PROTOCOL
> *DriverBinding,
> + IN EFI_HANDLE
> DriverBindingHandle,
> + IN BOOLEAN Install,
> + IN CONST EFI_COMPONENT_NAME_PROTOCOL
> *ComponentName,
> + IN CONST EFI_COMPONENT_NAME2_PROTOCOL
> *ComponentName2
> + )
> +{
> + EFI_STATUS Status;
> + EFI_PROCESS_PROTOCOL
> ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
> + UINT8 ProtocolCount;
> +
> + ASSERT (DriverBinding != NULL);
> +
> + //
> + // ZI the ProtocolArray structure. Both
> InstallMultipleProtocolInterfaces
> + // and UninstallMultipleProtocolInterfaces would
> stop processing ProtocolArray
> + // elements as soon as they encounter a NULL.
> + //
> + ZeroMem(ProtocolArray, sizeof(ProtocolArray));
> + ProtocolCount = 0;
> +
> + //
> + // Populate ProtocolArray with valid protocol
> interfaces.
> + //
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverBindingProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface =
> DriverBinding;
> + ProtocolCount++;
> +
> + if (ComponentName != NULL &&
> !FeaturePcdGet(PcdComponentNameDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentNameProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName;
> + ProtocolCount++;
> + }
> +
> + if (ComponentName2 != NULL &&
> !FeaturePcdGet(PcdComponentName2Disable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentName2ProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName2;
> + ProtocolCount++;
> + }
> +
> + Status = EfiLibProcessProtocols (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + Install,
> + ProtocolArray
> + );
> +
> + //
> + // ASSERT if the call to
> InstallMultipleProtocolInterfaces() or
> + // UninstallMultipleProtocolInterfaces() failed
> + //
> + ASSERT_EFI_ERROR (Status);
> +
> + return Status;
> +}
> +
> +
> +
> +static
> +EFI_STATUS
> +EFIAPI
> +EfiLibProcessAllDriverProtocols2 (
> + IN CONST EFI_HANDLE
> ImageHandle,
> + IN EFI_DRIVER_BINDING_PROTOCOL
> *DriverBinding,
> + IN EFI_HANDLE
> DriverBindingHandle,
> + IN BOOLEAN Install,
> + IN CONST EFI_COMPONENT_NAME_PROTOCOL
> *ComponentName,
> + IN CONST EFI_COMPONENT_NAME2_PROTOCOL
> *ComponentName2,
> + IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL
> *DriverConfiguration,
> + IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL
> *DriverConfiguration2,
> + IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
> *DriverDiagnostics,
> + IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
> *DriverDiagnostics2
> + )
> +{
> + EFI_STATUS Status;
> + EFI_PROCESS_PROTOCOL
> ProtocolArray[MAX_SUPPORTED_PROTOCOLS];
> + UINT8 ProtocolCount;
> +
> + ASSERT (DriverBinding != NULL);
> +
> + //
> + // ZI the ProtocolArray structure. Both
> InstallMultipleProtocolInterfaces
> + // and UninstallMultipleProtocolInterfaces would
> stop processing ProtocolArray
> + // elements as soon as they encounter a NULL.
> + //
> + ZeroMem(ProtocolArray, sizeof(ProtocolArray));
> + ProtocolCount = 0;
> +
> + //
> + // Populate ProtocolArray with valid protocol
> interfaces.
> + //
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverBindingProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface =
> DriverBinding;
> + ProtocolCount++;
> +
> + if (ComponentName != NULL &&
> !FeaturePcdGet(PcdComponentNameDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentNameProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName;
> + ProtocolCount++;
> + }
> +
> + if (ComponentName2 != NULL &&
> !FeaturePcdGet(PcdComponentName2Disable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiComponentName2ProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)ComponentName2;
> + ProtocolCount++;
> + }
> +
> + if (DriverConfiguration != NULL) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverConfigurationProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverConfiguration;
> + ProtocolCount++;
> + }
> +
> + if (DriverConfiguration2 != NULL) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverConfiguration2ProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverConfiguration2;
> + ProtocolCount++;
> + }
> +
> + if (DriverDiagnostics != NULL &&
> !FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverDiagnosticsProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverDiagnostics;
> + ProtocolCount++;
> + }
> +
> + if (DriverDiagnostics2 != NULL &&
> !FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> + ProtocolArray[ProtocolCount].Guid =
> &gEfiDriverDiagnostics2ProtocolGuid;
> + ProtocolArray[ProtocolCount].Interface = (VOID
> *)DriverDiagnostics2;
> + ProtocolCount++;
> + }
> +
> + Status = EfiLibProcessProtocols (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + Install,
> + ProtocolArray
> + );
> +
> + //
> + // ASSERT if the call to
> InstallMultipleProtocolInterfaces() or
> + // UninstallMultipleProtocolInterfaces() failed
> + //
> + ASSERT_EFI_ERROR (Status);
> +
> + return Status;
> +}
> +
> +
> +
> /**
> Installs and completes the initialization of a
> Driver Binding Protocol instance.
>
> @@ -148,96 +432,15 @@ EfiLibInstallAllDriverProtocols (
> IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
> *DriverDiagnostics OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - //
> - // Update the ImageHandle and DriverBindingHandle
> fields of the Driver Binding Protocol
> - //
> - DriverBinding->ImageHandle = ImageHandle;
> - DriverBinding->DriverBindingHandle =
> DriverBindingHandle;
> -
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverConfiguration == NULL) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (DriverConfiguration == NULL) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid,
> DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid,
> DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> InstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessAllDriverProtocols (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + TRUE,
> + ComponentName,
> + DriverConfiguration,
> + DriverDiagnostics
> + );
> }
>
>
> @@ -267,90 +470,15 @@ EfiLibUninstallAllDriverProtocols
> (
> IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL
> *DriverDiagnostics OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverConfiguration == NULL) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (DriverConfiguration == NULL) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid,
> DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid,
> DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> UninstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessAllDriverProtocols (
> + NULL,
> + DriverBinding,
> + NULL,
> + FALSE,
> + ComponentName,
> + DriverConfiguration,
> + DriverDiagnostics
> + );
> }
>
>
> @@ -389,56 +517,14 @@
> EfiLibInstallDriverBindingComponentName2 (
> IN CONST EFI_COMPONENT_NAME2_PROTOCOL
> *ComponentName2 OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - //
> - // Update the ImageHandle and DriverBindingHandle
> fields of the Driver Binding Protocol
> - //
> - DriverBinding->ImageHandle = ImageHandle;
> - DriverBinding->DriverBindingHandle =
> DriverBindingHandle;
> -
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentName2ProtocolGuid,
> ComponentName2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentNameProtocolGuid,
> ComponentName,
> - NULL
> - );
> - } else {
> - Status = gBS->InstallMultipleProtocolInterfaces
> (
> - &DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentNameProtocolGuid,
> ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> InstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessDriverBindingComponentName2 (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + TRUE,
> + ComponentName,
> + ComponentName2
> + );
> }
>
>
> @@ -465,50 +551,14 @@
> EfiLibUninstallDriverBindingComponentName2 (
> IN CONST EFI_COMPONENT_NAME2_PROTOCOL
> *ComponentName2 OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentName2ProtocolGuid,
> ComponentName2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentNameProtocolGuid,
> ComponentName,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> - &gEfiDriverBindingProtocolGuid,
> DriverBinding,
> - &gEfiComponentNameProtocolGuid,
> ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> UninstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessDriverBindingComponentName2 (
> + NULL,
> + DriverBinding,
> + NULL,
> + FALSE,
> + ComponentName,
> + ComponentName2
> + );
> }
>
>
> @@ -557,724 +607,18 @@ EfiLibInstallAllDriverProtocols2
> (
> IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
> *DriverDiagnostics2 OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - //
> - // Update the ImageHandle and DriverBindingHandle
> fields of the Driver Binding Protocol
> - //
> - DriverBinding->ImageHandle = ImageHandle;
> - DriverBinding->DriverBindingHandle =
> DriverBindingHandle;
> -
> - if (DriverConfiguration2 == NULL) {
> - if (DriverConfiguration == NULL) {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverConfiguration == NULL) {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >InstallMultipleProtocolInterfaces (
> - &DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> InstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessAllDriverProtocols2 (
> + ImageHandle,
> + DriverBinding,
> + DriverBindingHandle,
> + TRUE,
> + ComponentName,
> + ComponentName2,
> + DriverConfiguration,
> + DriverConfiguration2,
> + DriverDiagnostics,
> + DriverDiagnostics2
> + );
> }
>
>
> @@ -1311,716 +655,16 @@
> EfiLibUninstallAllDriverProtocols2 (
> IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL
> *DriverDiagnostics2 OPTIONAL
> )
> {
> - EFI_STATUS Status;
> -
> - ASSERT (DriverBinding != NULL);
> -
> - if (DriverConfiguration2 == NULL) {
> - if (DriverConfiguration == NULL) {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverConfiguration == NULL) {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics == NULL ||
> FeaturePcdGet(PcdDriverDiagnosticsDisable)) {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - } else {
> - if (DriverDiagnostics2 == NULL ||
> FeaturePcdGet(PcdDriverDiagnostics2Disable)) {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> - NULL
> - );
> - }
> - }
> - } else {
> - if (ComponentName == NULL ||
> FeaturePcdGet(PcdComponentNameDisable)) {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - } else {
> - if (ComponentName2 == NULL ||
> FeaturePcdGet(PcdComponentName2Disable)) {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - } else {
> - Status = gBS-
> >UninstallMultipleProtocolInterfaces (
> - DriverBinding-
> >DriverBindingHandle,
> -
> &gEfiDriverBindingProtocolGuid, DriverBinding,
> -
> &gEfiComponentNameProtocolGuid, ComponentName,
> -
> &gEfiComponentName2ProtocolGuid, ComponentName2,
> -
> &gEfiDriverConfigurationProtocolGuid,
> DriverConfiguration,
> -
> &gEfiDriverConfiguration2ProtocolGuid,
> DriverConfiguration2,
> -
> &gEfiDriverDiagnosticsProtocolGuid, DriverDiagnostics,
> -
> &gEfiDriverDiagnostics2ProtocolGuid,
> DriverDiagnostics2,
> - NULL
> - );
> - }
> - }
> - }
> - }
> - }
> - }
> -
> - //
> - // ASSERT if the call to
> UninstallMultipleProtocolInterfaces() failed
> - //
> - ASSERT_EFI_ERROR (Status);
> -
> - return Status;
> + return EfiLibProcessAllDriverProtocols2 (
> + NULL,
> + DriverBinding,
> + NULL,
> + FALSE,
> + ComponentName,
> + ComponentName2,
> + DriverConfiguration,
> + DriverConfiguration2,
> + DriverDiagnostics,
> + DriverDiagnostics2
> + );
> }
> --
> 2.7.4
>
> -------------------------------------------------------
> ----------------------------
> This email message is for the sole use of the intended
> recipient(s) and may contain
> confidential information. Any unauthorized review,
> use, disclosure or distribution
> is prohibited. If you are not the intended recipient,
> please contact the sender by
> reply email and destroy all copies of the original
> message.
> -------------------------------------------------------
> ----------------------------
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-02-25 19:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-04 20:16 [PATCH] MdePkg/UefiLib: Simplify protocol un/installation abstraction Ashish Singhal
2019-02-19 16:19 ` Ashish Singhal
2019-02-19 19:56 ` Kinney, Michael D
2019-02-25 19:09 ` Ashish Singhal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox