From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-x22d.google.com (mail-wr0-x22d.google.com [IPv6:2a00:1450:400c:c0c::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id D8F0620080926 for ; Wed, 5 Apr 2017 06:58:19 -0700 (PDT) Received: by mail-wr0-x22d.google.com with SMTP id w11so14977782wrc.3 for ; Wed, 05 Apr 2017 06:58:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=q6wvd6Aa2TbbfgZ/OnRlLJ39WL+Rm4dG2OFw1b55AZI=; b=MEMX1p036caOo6CzG3qW9uEfxDjZlMeLdLltMxcO4lJ7MbB01GWIHmqZ4tFXFbJrjj 4ddsVS+qmPZCE9C6sNf/d/G/DLcjUybR4oUt+wnXg3kg/spTBK9qzNhVTaJARzUaJ0CH N6hQhYKNHEWorQ1wrZN61PSFL2EolgeAXWrYY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=q6wvd6Aa2TbbfgZ/OnRlLJ39WL+Rm4dG2OFw1b55AZI=; b=qPX8Ci2QDrx5oy4der9lmWNCzWyrlLcOiHUVFXb7N0M5gqLOCWxconmQMlUNrkKUip /fnF5FEbMLOJkBVbkF8e/Zf2cbkrWXc7i9x19ZNQHxMpzViXWMYhpgecfkHY+YoCCKvs 7TlpRMQTr+vjN4Lv4lodtIpc7hoG/x6KI74OA0oZo2YVOpmSrBJGsgGDayhovZzMZ+r2 FtCnUMj3VXkU0ms7/7x/+YStPnXDCkAQe+jWOLoXeLNiBeSCrRD/zG2wYHYAvYFaLmUM PLEj0/FbJH1MnyNjTaP7swWgQ6HFRIAR7+K7OOtGIy9zxsH2b4vkFB4q9euRO3H1IBdW NiSA== X-Gm-Message-State: AFeK/H0qVGyki7ROwjjz9GB/lhoIHXNhruqv/0U8ik9PkDCRUCuLO0EAXbOgLghcIvijVqLr X-Received: by 10.223.183.6 with SMTP id l6mr26475883wre.192.1491400697276; Wed, 05 Apr 2017 06:58:17 -0700 (PDT) Received: from localhost.localdomain ([160.163.145.113]) by smtp.gmail.com with ESMTPSA id 127sm22522793wmt.20.2017.04.05.06.58.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 05 Apr 2017 06:58:16 -0700 (PDT) From: Ard Biesheuvel To: edk2-devel@lists.01.org Cc: leif.lindholm@linaro.org, ryan.harkin@linaro.org, Ard Biesheuvel Date: Wed, 5 Apr 2017 14:58:02 +0100 Message-Id: <20170405135807.28425-2-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170405135807.28425-1-ard.biesheuvel@linaro.org> References: <20170405135807.28425-1-ard.biesheuvel@linaro.org> Subject: [PATCH v4 resend v4 1/6] ArmPlatformPkg/ArmShellCmdRunAxf: remove BdsLib dependency X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Apr 2017 13:58:20 -0000 Remove ArmShellCmdRunAxf's dependency on the deprecated BdsLib by cloning the ShutdownUefiBootServices() routine into a local source file; this is the only BdsLib feature 'runaxf' depends on. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel Tested-by: Ryan Harkin Reviewed-by: Leif Lindholm --- ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf | 1 - ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c | 58 +++++++++++++++++++- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf b/ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf index 9a34f666612a..7d15f6934608 100644 --- a/ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf +++ b/ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf @@ -43,7 +43,6 @@ [Packages] [LibraryClasses] ArmLib BaseLib - BdsLib DebugLib HiiLib ShellLib diff --git a/ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c b/ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c index 2abfb6cc1053..9f4fc780307d 100644 --- a/ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c +++ b/ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include @@ -35,6 +34,63 @@ typedef VOID (*ELF_ENTRYPOINT)(UINTN arg0, UINTN arg1, UINTN arg2, UINTN arg3); +STATIC +EFI_STATUS +ShutdownUefiBootServices ( + VOID + ) +{ + EFI_STATUS Status; + UINTN MemoryMapSize; + EFI_MEMORY_DESCRIPTOR *MemoryMap; + UINTN MapKey; + UINTN DescriptorSize; + UINT32 DescriptorVersion; + UINTN Pages; + + MemoryMap = NULL; + MemoryMapSize = 0; + Pages = 0; + + do { + Status = gBS->GetMemoryMap ( + &MemoryMapSize, + MemoryMap, + &MapKey, + &DescriptorSize, + &DescriptorVersion + ); + if (Status == EFI_BUFFER_TOO_SMALL) { + + Pages = EFI_SIZE_TO_PAGES (MemoryMapSize) + 1; + MemoryMap = AllocatePages (Pages); + + // + // Get System MemoryMap + // + Status = gBS->GetMemoryMap ( + &MemoryMapSize, + MemoryMap, + &MapKey, + &DescriptorSize, + &DescriptorVersion + ); + } + + // Don't do anything between the GetMemoryMap() and ExitBootServices() + if (!EFI_ERROR(Status)) { + Status = gBS->ExitBootServices (gImageHandle, MapKey); + if (EFI_ERROR(Status)) { + FreePages (MemoryMap, Pages); + MemoryMap = NULL; + MemoryMapSize = 0; + } + } + } while (EFI_ERROR(Status)); + + return Status; +} + STATIC EFI_STATUS -- 2.9.3