]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/BdsLib/BdsAppLoader.c
ArmPkg: remove BdsLib and remaining ARM BDS related PCDs
[mirror_edk2.git] / ArmPkg / Library / BdsLib / BdsAppLoader.c
diff --git a/ArmPkg/Library/BdsLib/BdsAppLoader.c b/ArmPkg/Library/BdsLib/BdsAppLoader.c
deleted file mode 100644 (file)
index 1f208f8..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-/** @file\r
-*\r
-*  Copyright (c) 2011-2015, ARM Limited. All rights reserved.\r
-*\r
-*  This program and the accompanying materials\r
-*  are licensed and made available under the terms and conditions of the BSD License\r
-*  which accompanies this distribution.  The full text of the license may be found at\r
-*  http://opensource.org/licenses/bsd-license.php\r
-*\r
-*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-*\r
-**/\r
-\r
-#include "BdsInternal.h"\r
-\r
-/**\r
-  Locate an EFI application in a the Firmware Volumes by its Name\r
-\r
-  @param  EfiAppGuid            Guid of the EFI Application into the Firmware Volume\r
-  @param  DevicePath            EFI Device Path of the EFI application\r
-\r
-  @return EFI_SUCCESS           The function completed successfully.\r
-  @return EFI_NOT_FOUND         The protocol could not be located.\r
-  @return EFI_OUT_OF_RESOURCES  There are not enough resources to find the protocol.\r
-\r
-**/\r
-EFI_STATUS\r
-LocateEfiApplicationInFvByName (\r
-  IN  CONST CHAR16*             EfiAppName,\r
-  OUT EFI_DEVICE_PATH           **DevicePath\r
-  )\r
-{\r
-  VOID                          *Key;\r
-  EFI_STATUS                    Status, FileStatus;\r
-  EFI_GUID                      NameGuid;\r
-  EFI_FV_FILETYPE               FileType;\r
-  EFI_FV_FILE_ATTRIBUTES        Attributes;\r
-  UINTN                         Size;\r
-  UINTN                         UiStringLen;\r
-  CHAR16                        *UiSection;\r
-  UINT32                        Authentication;\r
-  EFI_DEVICE_PATH               *FvDevicePath;\r
-  MEDIA_FW_VOL_FILEPATH_DEVICE_PATH    FileDevicePath;\r
-  EFI_HANDLE                    *HandleBuffer;\r
-  UINTN                         NumberOfHandles;\r
-  UINTN                         Index;\r
-  EFI_FIRMWARE_VOLUME2_PROTOCOL *FvInstance;\r
-\r
-  ASSERT (DevicePath != NULL);\r
-\r
-  // Length of FilePath\r
-  UiStringLen = StrLen (EfiAppName);\r
-\r
-  // Locate all the Firmware Volume protocols.\r
-  Status = gBS->LocateHandleBuffer (\r
-                   ByProtocol,\r
-                   &gEfiFirmwareVolume2ProtocolGuid,\r
-                   NULL,\r
-                   &NumberOfHandles,\r
-                   &HandleBuffer\r
-                   );\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  *DevicePath = NULL;\r
-\r
-  // Looking for FV with ACPI storage file\r
-  for (Index = 0; Index < NumberOfHandles; Index++) {\r
-    //\r
-    // Get the protocol on this handle\r
-    // This should not fail because of LocateHandleBuffer\r
-    //\r
-    Status = gBS->HandleProtocol (\r
-                     HandleBuffer[Index],\r
-                     &gEfiFirmwareVolume2ProtocolGuid,\r
-                     (VOID**) &FvInstance\r
-                     );\r
-    if (EFI_ERROR (Status)) {\r
-      goto FREE_HANDLE_BUFFER;\r
-    }\r
-\r
-    // Allocate Key\r
-    Key = AllocatePool (FvInstance->KeySize);\r
-    ASSERT (Key != NULL);\r
-    ZeroMem (Key, FvInstance->KeySize);\r
-\r
-    do {\r
-      // Search in all files\r
-      FileType = EFI_FV_FILETYPE_ALL;\r
-\r
-      Status = FvInstance->GetNextFile (FvInstance, Key, &FileType, &NameGuid, &Attributes, &Size);\r
-      if (!EFI_ERROR (Status)) {\r
-        UiSection = NULL;\r
-        FileStatus = FvInstance->ReadSection (\r
-                      FvInstance,\r
-                      &NameGuid,\r
-                      EFI_SECTION_USER_INTERFACE,\r
-                      0,\r
-                      (VOID **)&UiSection,\r
-                      &Size,\r
-                      &Authentication\r
-                      );\r
-        if (!EFI_ERROR (FileStatus)) {\r
-          if (StrnCmp (EfiAppName, UiSection, UiStringLen) == 0) {\r
-            //\r
-            // We found a UiString match.\r
-            //\r
-            Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiDevicePathProtocolGuid, (VOID **)&FvDevicePath);\r
-\r
-            // Generate the Device Path for the file\r
-            EfiInitializeFwVolDevicepathNode (&FileDevicePath, &NameGuid);\r
-            *DevicePath = AppendDevicePathNode (FvDevicePath, (EFI_DEVICE_PATH_PROTOCOL *)&FileDevicePath);\r
-            ASSERT (*DevicePath != NULL);\r
-\r
-            FreePool (Key);\r
-            FreePool (UiSection);\r
-            FreePool (HandleBuffer);\r
-            return FileStatus;\r
-          }\r
-          FreePool (UiSection);\r
-        }\r
-      }\r
-    } while (!EFI_ERROR (Status));\r
-\r
-    FreePool (Key);\r
-  }\r
-\r
-FREE_HANDLE_BUFFER:\r
-  FreePool (HandleBuffer);\r
-  return EFI_NOT_FOUND;\r
-}\r
-\r
-/**\r
-  Locate an EFI application in a the Firmware Volumes by its GUID\r
-\r
-  @param  EfiAppGuid            Guid of the EFI Application into the Firmware Volume\r
-  @param  DevicePath            EFI Device Path of the EFI application\r
-\r
-  @return EFI_SUCCESS           The function completed successfully.\r
-  @return EFI_NOT_FOUND         The protocol could not be located.\r
-  @return EFI_OUT_OF_RESOURCES  There are not enough resources to find the protocol.\r
-\r
-**/\r
-EFI_STATUS\r
-LocateEfiApplicationInFvByGuid (\r
-  IN  CONST EFI_GUID            *EfiAppGuid,\r
-  OUT EFI_DEVICE_PATH           **DevicePath\r
-  )\r
-{\r
-  EFI_STATUS                    Status;\r
-  EFI_DEVICE_PATH               *FvDevicePath;\r
-  EFI_HANDLE                    *HandleBuffer;\r
-  UINTN                         NumberOfHandles;\r
-  UINTN                         Index;\r
-  EFI_FIRMWARE_VOLUME2_PROTOCOL *FvInstance;\r
-  EFI_FV_FILE_ATTRIBUTES        Attributes;\r
-  UINT32                        AuthenticationStatus;\r
-  EFI_FV_FILETYPE               Type;\r
-  UINTN                         Size;\r
-  CHAR16                        *UiSection;\r
-  MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FvFileDevicePath;\r
-\r
-  ASSERT (DevicePath != NULL);\r
-\r
-  // Locate all the Firmware Volume protocols.\r
-  Status = gBS->LocateHandleBuffer (\r
-                   ByProtocol,\r
-                   &gEfiFirmwareVolume2ProtocolGuid,\r
-                   NULL,\r
-                   &NumberOfHandles,\r
-                   &HandleBuffer\r
-                   );\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  *DevicePath = NULL;\r
-\r
-  // Looking for FV with ACPI storage file\r
-  for (Index = 0; Index < NumberOfHandles; Index++) {\r
-    //\r
-    // Get the protocol on this handle\r
-    // This should not fail because of LocateHandleBuffer\r
-    //\r
-    Status = gBS->HandleProtocol (\r
-                     HandleBuffer[Index],\r
-                     &gEfiFirmwareVolume2ProtocolGuid,\r
-                     (VOID**) &FvInstance\r
-                     );\r
-    if (EFI_ERROR (Status)) {\r
-      goto FREE_HANDLE_BUFFER;\r
-    }\r
-\r
-    Status = FvInstance->ReadFile (\r
-                  FvInstance,\r
-                  EfiAppGuid,\r
-                  NULL,\r
-                  &Size,\r
-                  &Type,\r
-                  &Attributes,\r
-                  &AuthenticationStatus\r
-                  );\r
-    if (EFI_ERROR (Status)) {\r
-      //\r
-      // Skip if no EFI application file in the FV\r
-      //\r
-      continue;\r
-    } else {\r
-      UiSection = NULL;\r
-      Status = FvInstance->ReadSection (\r
-                    FvInstance,\r
-                    EfiAppGuid,\r
-                    EFI_SECTION_USER_INTERFACE,\r
-                    0,\r
-                    (VOID **)&UiSection,\r
-                    &Size,\r
-                    &AuthenticationStatus\r
-                    );\r
-      if (!EFI_ERROR (Status)) {\r
-        //\r
-        // Create the EFI Device Path for the application using the Filename of the application\r
-        //\r
-        *DevicePath = FileDevicePath (HandleBuffer[Index], UiSection);\r
-      } else {\r
-        Status = gBS->HandleProtocol (HandleBuffer[Index], &gEfiDevicePathProtocolGuid, (VOID**)&FvDevicePath);\r
-        ASSERT_EFI_ERROR (Status);\r
-\r
-        //\r
-        // Create the EFI Device Path for the application using the EFI GUID of the application\r
-        //\r
-        EfiInitializeFwVolDevicepathNode (&FvFileDevicePath, EfiAppGuid);\r
-\r
-        *DevicePath = AppendDevicePathNode (FvDevicePath, (EFI_DEVICE_PATH_PROTOCOL *)&FvFileDevicePath);\r
-        ASSERT (*DevicePath != NULL);\r
-      }\r
-      break;\r
-    }\r
-  }\r
-\r
-FREE_HANDLE_BUFFER:\r
-  //\r
-  // Free any allocated buffers\r
-  //\r
-  FreePool (HandleBuffer);\r
-\r
-  if (*DevicePath == NULL) {\r
-    return EFI_NOT_FOUND;\r
-  } else {\r
-    return EFI_SUCCESS;\r
-  }\r
-}\r