]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c
ArmPkg/BdsLib: Exposed ShutdownUefiBootServices() in the BdsLib interface
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmShellCmdRunAxf / RunAxf.c
index e8576afa75564159bc76d3f1f7476358f13944d8..2abfb6cc1053ad1bbc87e8f5200f00422b6617a3 100644 (file)
 **/\r
 \r
 #include <Guid/GlobalVariable.h>\r
+\r
 #include <Library/PrintLib.h>\r
 #include <Library/HandleParsingLib.h>\r
 #include <Library/DevicePathLib.h>\r
 #include <Library/BaseLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
+#include <Library/BdsLib.h>\r
 #include <Library/MemoryAllocationLib.h>\r
 #include <Library/DebugLib.h>\r
 \r
@@ -34,64 +36,6 @@ typedef VOID (*ELF_ENTRYPOINT)(UINTN arg0, UINTN arg1,
                                UINTN arg2, UINTN arg3);\r
 \r
 \r
-STATIC\r
-EFI_STATUS\r
-ShutdownUefiBootServices (\r
-  VOID\r
-  )\r
-{\r
-  EFI_STATUS              Status;\r
-  UINTN                   MemoryMapSize;\r
-  EFI_MEMORY_DESCRIPTOR   *MemoryMap;\r
-  UINTN                   MapKey;\r
-  UINTN                   DescriptorSize;\r
-  UINT32                  DescriptorVersion;\r
-  UINTN                   Pages;\r
-\r
-  MemoryMap = NULL;\r
-  MemoryMapSize = 0;\r
-  Pages = 0;\r
-\r
-  do {\r
-    Status = gBS->GetMemoryMap (\r
-                    &MemoryMapSize,\r
-                    MemoryMap,\r
-                    &MapKey,\r
-                    &DescriptorSize,\r
-                    &DescriptorVersion\r
-                    );\r
-    if (Status == EFI_BUFFER_TOO_SMALL) {\r
-\r
-      Pages = EFI_SIZE_TO_PAGES (MemoryMapSize) + 1;\r
-      MemoryMap = AllocatePages (Pages);\r
-\r
-      //\r
-      // Get System MemoryMap\r
-      //\r
-      Status = gBS->GetMemoryMap (\r
-                      &MemoryMapSize,\r
-                      MemoryMap,\r
-                      &MapKey,\r
-                      &DescriptorSize,\r
-                      &DescriptorVersion\r
-                      );\r
-    }\r
-\r
-    // Don't do anything between the GetMemoryMap() and ExitBootServices()\r
-    if (!EFI_ERROR (Status)) {\r
-      Status = gBS->ExitBootServices (gImageHandle, MapKey);\r
-      if (EFI_ERROR (Status)) {\r
-        FreePages (MemoryMap, Pages);\r
-        MemoryMap = NULL;\r
-        MemoryMapSize = 0;\r
-      }\r
-    }\r
-  } while (EFI_ERROR (Status));\r
-\r
-  return Status;\r
-}\r
-\r
-\r
 STATIC\r
 EFI_STATUS\r
 PreparePlatformHardware (\r