From: qhuang8 Date: Mon, 18 Aug 2008 11:11:50 +0000 (+0000) Subject: Retire GenBin directory since we have created EdkShellPkg and its own DSC file to... X-Git-Tag: edk2-stable201903~20534 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=d1a44d08c1b221669e88f27801b3e4ae26d7fd96 Retire GenBin directory since we have created EdkShellPkg and its own DSC file to generate Shell binaries in this package. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5686 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/EdkShellBinPkg/GenBin/EdkShellPkg.dsc b/EdkShellBinPkg/GenBin/EdkShellPkg.dsc deleted file mode 100644 index 9f7d3d74d2..0000000000 --- a/EdkShellBinPkg/GenBin/EdkShellPkg.dsc +++ /dev/null @@ -1,146 +0,0 @@ -#/** @file -# This package build validate file is used to generate the shell binaries in this package. -# It depends on EdkCompatibilityPkg, Edk Shell source packge & BaseTools package. -# -# Copyright (c) 2008. Intel Corporation -# -# All rights reserved. This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -#**/ - -[Defines] - PLATFORM_NAME = EdkShellPkg - PLATFORM_GUID = 761BEE8B-58E3-4014-B8F5-0214A8DFA7EE - PLATFORM_VERSION = 1.04 - DSC_SPECIFICATION = 0x00010005 - OUTPUT_DIRECTORY = Build/EdkShellPkg - SUPPORTED_ARCHITECTURES = IA32|IPF|X64 - BUILD_TARGETS = DEBUG|RELEASE - SKUID_IDENTIFIER = DEFAULT - -[Libraries] - # - # Libraries common to PEI and DXE - # - EdkCompatibilityPkg/Foundation/Efi/Guid/EfiGuidLib.inf - EdkCompatibilityPkg/Foundation/Framework/Guid/EdkFrameworkGuidLib.inf - EdkCompatibilityPkg/Foundation/Guid/EdkGuidLib.inf - EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/EfiCommonLib.inf - EdkCompatibilityPkg/Foundation/Cpu/Pentium/CpuIA32Lib/CpuIA32Lib.inf - EdkCompatibilityPkg/Foundation/Cpu/Itanium/CpuIA64Lib/CpuIA64Lib.inf - EdkCompatibilityPkg/Foundation/Library/CompilerStub/CompilerStubLib.inf - EdkCompatibilityPkg/Foundation/Library/CustomizedDecompress/CustomizedDecompress.inf - EdkCompatibilityPkg/Foundation/Library/Dxe/Hob/HobLib.inf - # - # PEI libraries - # - EdkCompatibilityPkg/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf - EdkCompatibilityPkg/Foundation/Ppi/EdkPpiLib.inf - EdkCompatibilityPkg/Foundation/Library/Pei/PeiLib/PeiLib.inf - EdkCompatibilityPkg/Foundation/Library/Pei/Hob/PeiHobLib.inf - # - # DXE libraries - # - EdkCompatibilityPkg/Foundation/Core/Dxe/ArchProtocol/ArchProtocolLib.inf - EdkCompatibilityPkg/Foundation/Efi/Protocol/EfiProtocolLib.inf - EdkCompatibilityPkg/Foundation/Framework/Protocol/EdkFrameworkProtocolLib.inf - EdkCompatibilityPkg/Foundation/Protocol/EdkProtocolLib.inf - EdkCompatibilityPkg/Foundation/Library/Dxe/EfiDriverLib/EfiDriverLib.inf - EdkCompatibilityPkg/Foundation/Library/RuntimeDxe/EfiRuntimeLib/EfiRuntimeLib.inf - EdkCompatibilityPkg/Foundation/Library/Dxe/Graphics/Graphics.inf - EdkCompatibilityPkg/Foundation/Library/Dxe/EfiIfrSupportLib/EfiIfrSupportLib.inf - EdkCompatibilityPkg/Foundation/Library/Dxe/UefiEfiIfrSupportLib/UefiEfiIfrSupportLib.inf - EdkCompatibilityPkg/Foundation/Library/Dxe/Print/PrintLib.inf - EdkCompatibilityPkg/Foundation/Library/Dxe/EfiScriptLib/EfiScriptLib.inf - EdkCompatibilityPkg/Foundation/Library/Dxe/EfiUiLib/EfiUiLib.inf - # - # Print/Graphics Library consume SetupBrowser Print Protocol - # - EdkCompatibilityPkg/Foundation/Library/Dxe/PrintLite/PrintLib.inf - EdkCompatibilityPkg/Foundation/Library/Dxe/GraphicsLite/Graphics.inf - # - # Shell Library - # - EdkCompatibilityPkg/Shell/Library/EfiShellLib.inf - - -[Components] - # - # Shell.inf & ShellFull.inf can not be included at once to avoid over - # - EdkCompatibilityPkg/Shell/Shell.inf - EdkCompatibilityPkg/Shell/ShellFull.inf - EdkCompatibilityPkg/Shell/attrib/attrib.inf - EdkCompatibilityPkg/Shell/cls/cls.inf - EdkCompatibilityPkg/Shell/comp/comp.inf - EdkCompatibilityPkg/Shell/cp/cp.inf - EdkCompatibilityPkg/Shell/date/date.inf - EdkCompatibilityPkg/Shell/dblk/dblk.inf - EdkCompatibilityPkg/Shell/devices/devices.inf - EdkCompatibilityPkg/Shell/DeviceTree/devicetree.inf - EdkCompatibilityPkg/Shell/dmem/dmem.inf - EdkCompatibilityPkg/Shell/dmpstore/dmpstore.inf - EdkCompatibilityPkg/Shell/drivers/drivers.inf - EdkCompatibilityPkg/Shell/drvcfg/drvcfg.inf - EdkCompatibilityPkg/Shell/drvdiag/drvdiag.inf - EdkCompatibilityPkg/Shell/edit/edit.inf - EdkCompatibilityPkg/Shell/EfiCompress/compress.inf - EdkCompatibilityPkg/Shell/EfiDecompress/Decompress.inf - EdkCompatibilityPkg/Shell/err/err.inf - EdkCompatibilityPkg/Shell/guid/guid.inf - EdkCompatibilityPkg/Shell/hexedit/hexedit.inf - EdkCompatibilityPkg/Shell/IfConfig/IfConfig.inf - EdkCompatibilityPkg/Shell/IpConfig/IpConfig.inf - EdkCompatibilityPkg/Shell/load/load.inf - EdkCompatibilityPkg/Shell/LoadPciRom/LoadPciRom.inf - EdkCompatibilityPkg/Shell/ls/ls.inf - EdkCompatibilityPkg/Shell/mem/mem.inf - EdkCompatibilityPkg/Shell/memmap/memmap.inf - EdkCompatibilityPkg/Shell/mkdir/mkdir.inf - EdkCompatibilityPkg/Shell/mm/mm.inf - EdkCompatibilityPkg/Shell/mode/mode.inf - EdkCompatibilityPkg/Shell/mount/mount.inf - EdkCompatibilityPkg/Shell/mv/mv.inf - EdkCompatibilityPkg/Shell/newshell/nshell.inf - EdkCompatibilityPkg/Shell/openinfo/openinfo.inf - EdkCompatibilityPkg/Shell/pci/pci.inf - EdkCompatibilityPkg/Shell/Ping/Ping.inf - EdkCompatibilityPkg/Shell/reset/reset.inf - EdkCompatibilityPkg/Shell/rm/rm.inf - EdkCompatibilityPkg/Shell/sermode/sermode.inf - EdkCompatibilityPkg/Shell/SmbiosView/Smbiosview.inf - EdkCompatibilityPkg/Shell/stall/stall.inf - EdkCompatibilityPkg/Shell/TelnetMgmt/TelnetMgmt.inf - EdkCompatibilityPkg/Shell/time/time.inf - EdkCompatibilityPkg/Shell/touch/touch.inf - EdkCompatibilityPkg/Shell/type/type.inf - EdkCompatibilityPkg/Shell/tzone/timezone.inf - EdkCompatibilityPkg/Shell/unload/unload.inf - EdkCompatibilityPkg/Shell/ver/Ver.inf - EdkCompatibilityPkg/Shell/vol/Vol.inf - -[BuildOptions] - *_*_IA32_CC_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFI32 - *_*_IA32_ASM_FLAGS = /DEFI32 - *_*_IA32_VFRPP_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFI32 - *_*_IA32_APP_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFI32 - *_*_IA32_PP_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFI32 - - *_*_X64_CC_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFIX64 - *_*_X64_ASM_FLAGS = /DEFIX64 - *_*_X64_VFRPP_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFIX64 - *_*_X64_APP_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFIX64 - *_*_X64_PP_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFIX64 - - *_*_IPF_CC_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFI64 - *_*_IPF_ASM_FLAGS = - *_*_IPF_VFRPP_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFI64 - *_*_IPF_APP_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFI64 - *_*_IPF_PP_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D PI_SPECIFICATION_VERSION=0x00010000 /D TIANO_RELEASE_VERSION=0x00080006 /D EFI64 - diff --git a/EdkShellBinPkg/GenBin/Shell_HotFix.diff b/EdkShellBinPkg/GenBin/Shell_HotFix.diff deleted file mode 100644 index 2bff57c191..0000000000 --- a/EdkShellBinPkg/GenBin/Shell_HotFix.diff +++ /dev/null @@ -1,325 +0,0 @@ -diff -urN --binary -a -x CVS Oldv1.5/Application/Shell/Library/EfiShellLib.h Newv1.5/Application/Shell/Library/EfiShellLib.h ---- Oldv1.5/Application/Shell/Library/EfiShellLib.h 2008-06-10 13:46:56.000000000 +0800 -+++ Newv1.5/Application/Shell/Library/EfiShellLib.h 2008-07-09 11:45:28.026417300 +0800 -@@ -174,22 +174,23 @@ - // - // Environment variable name constants - // --#define VarLanguageCodes L"LangCodes" --#define VarLanguage L"Lang" --#define VarTimeout L"Timeout" --#define VarConsoleIn L"ConIn" --#define VarConsoleOut L"ConOut" --#define VarErrorOut L"ErrOut" --#define VarBootOption L"Boot%04x" --#define VarBootOrder L"BootOrder" --#define VarBootNext L"BootNext" --#define VarBootCurrent L"BootCurrent" --#define VarDriverOption L"Driver%04x" --#define VarDriverOrder L"DriverOrder" --#define VarConsoleInpDev L"ConInDev" --#define VarConsoleOutDev L"ConOutDev" --#define VarErrorOutDev L"ErrOutDev" --#define LanguageCodeEnglish "eng" -+#define VarLanguageCodes L"LangCodes" -+#define VarLanguage L"Lang" -+#define VarTimeout L"Timeout" -+#define VarConsoleIn L"ConIn" -+#define VarConsoleOut L"ConOut" -+#define VarErrorOut L"ErrOut" -+#define VarBootOption L"Boot%04x" -+#define VarBootOrder L"BootOrder" -+#define VarBootNext L"BootNext" -+#define VarBootCurrent L"BootCurrent" -+#define VarDriverOption L"Driver%04x" -+#define VarDriverOrder L"DriverOrder" -+#define VarConsoleInpDev L"ConInDev" -+#define VarConsoleOutDev L"ConOutDev" -+#define VarErrorOutDev L"ErrOutDev" -+#define LanguageCodeEnglish "eng" -+#define PlatformLanguageCodeEnglish "en-US" - - #define ISO_639_2_ENTRY_SIZE 3 - #define RFC_3066_ENTRY_SIZE 12 -@@ -333,4 +334,10 @@ - IN CHAR8 *LangCode - ); - -+CHAR8 * -+ExtractSupportedLanguage ( -+ IN CONST CHAR8 *SupportedLanguages, -+ IN CONST CHAR8 *Language -+ ); -+ - #endif -diff -urN --binary -a -x CVS Oldv1.5/Application/Shell/Library/Misc.c Newv1.5/Application/Shell/Library/Misc.c ---- Oldv1.5/Application/Shell/Library/Misc.c 2008-06-10 13:46:56.000000000 +0800 -+++ Newv1.5/Application/Shell/Library/Misc.c 2008-07-09 11:45:28.088917700 +0800 -@@ -2271,3 +2271,76 @@ - } - return Lang; - } -+ -+CHAR8 * -+ExtractSupportedLanguage ( -+ IN CONST CHAR8 *SupportedLanguages, -+ IN CONST CHAR8 *Language -+ ) -+/*++ -+ -+ Routine Description: -+ -+ This function matches the major language code (first two characters) in the -+ SupportedLanguages. The first language code in the SupportedLanguages that -+ matches first two characters of the input Language is returned. If there is no -+ such match, then NULL is returned. -+ -+ Arguments: -+ -+ SupportedLanguages - A Null-terminated ASCII string that contains one -+ or more supported language codes. -+ -+ LangCode - A pointer to a Null-terminated ASCII string -+ array indicating the RFC 3066 language. -+ -+ Returns: -+ -+ The RFC3066 language code that matches the major language. -+ -+--*/ -+{ -+ CONST CHAR8 *CurrentLanguage; -+ CHAR8 *SupportedLanguage; -+ UINTN LanguageLen; -+ -+ CurrentLanguage = SupportedLanguages; -+ -+ while (CurrentLanguage != '\0') { -+ // -+ // Search till the end of current language. -+ // -+ LanguageLen = 0; -+ while (CurrentLanguage[LanguageLen] != ';' && CurrentLanguage[LanguageLen] != '\0') { -+ LanguageLen++; -+ } -+ -+ // -+ // should use AsciiStrnCmp(CurrentLanguage, Language, 2) == 0 -+ // -+ if ((CurrentLanguage[0] == Language[0]) && (CurrentLanguage[1] == Language[1])) { -+ // -+ // Match the major language code, then return a new copy of -+ // NULL-terminated SupportedLanguage. -+ // -+ SupportedLanguage = AllocatePool (LanguageLen + 1); -+ CopyMem (SupportedLanguage, (VOID *) CurrentLanguage, LanguageLen); -+ -+ SupportedLanguage[LanguageLen] = '\0'; -+ -+ return SupportedLanguage; -+ } -+ // -+ // Make CurrentLangue point to the next candiate language code. -+ // -+ CurrentLanguage += LanguageLen; -+ if (*CurrentLanguage == ';') { -+ CurrentLanguage++; -+ } -+ } -+ -+ return NULL; -+} -+ -+ -+ -diff -urN --binary -a -x CVS Oldv1.5/Application/Shell/SmbiosView/PrintInfo.c Newv1.5/Application/Shell/SmbiosView/PrintInfo.c ---- Oldv1.5/Application/Shell/SmbiosView/PrintInfo.c 2007-11-26 14:01:00.000000000 +0800 -+++ Newv1.5/Application/Shell/SmbiosView/PrintInfo.c 2008-07-09 12:36:07.646190700 +0800 -@@ -1779,7 +1779,7 @@ - // - // MaxSize is determined by follow formula - // -- MaxSize = 1 << Size; -+ MaxSize = (UINTN) 1 << Size; - PrintToken (STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_MB), HiiHandle, MaxSize); - - if (Option >= SHOW_DETAIL) { -diff -urN --binary -a -x CVS Oldv1.5/Application/Shell/SmbiosView/Smbios.h Newv1.5/Application/Shell/SmbiosView/Smbios.h ---- Oldv1.5/Application/Shell/SmbiosView/Smbios.h 2006-03-07 16:20:46.000000000 +0800 -+++ Newv1.5/Application/Shell/SmbiosView/Smbios.h 2008-07-09 10:29:41.548254500 +0800 -@@ -34,11 +34,6 @@ - - extern EFI_HII_HANDLE HiiHandle; - --#define EFI_SMBIOS_TABLE_GUID \ -- { \ -- 0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d \ -- } - --extern EFI_GUID gEfiSmbiosTableGuid; - - #endif -diff -urN --binary -a -x CVS Oldv1.5/Application/Shell/drivers/drivers.c Newv1.5/Application/Shell/drivers/drivers.c ---- Oldv1.5/Application/Shell/drivers/drivers.c 2008-05-26 13:22:52.000000000 +0800 -+++ Newv1.5/Application/Shell/drivers/drivers.c 2008-07-09 12:36:16.552668700 +0800 -@@ -130,6 +130,7 @@ - UINTN StringIndex; - UINTN Index; - CHAR8 *Language; -+ CHAR8 *PlatformLanguage; - UINTN DriverImageHandleCount; - EFI_HANDLE *DriverImageHandleBuffer; - UINTN HandleIndex; -@@ -152,6 +153,7 @@ - SHELL_VAR_CHECK_PACKAGE ChkPck; - - Language = NULL; -+ PlatformLanguage = NULL; - DriverImageHandleCount = 0; - DriverImageHandleBuffer = NULL; - IsHelp = FALSE; -@@ -241,7 +243,7 @@ - goto Done; - } - -- Language = LibGetVariableLang (); -+ Language = LibGetVariable (L"Lang", &gEfiGlobalVariableGuid); - if (Language == NULL) { - Language = (CHAR8 *)AllocateZeroPool(strlena(LanguageCodeEnglish) + 1); - if (Language == NULL) { -@@ -250,6 +252,15 @@ - strcpya(Language, LanguageCodeEnglish); - } - -+ PlatformLanguage = LibGetVariable (L"PlatformLang", &gEfiGlobalVariableGuid); -+ if (PlatformLanguage == NULL) { -+ PlatformLanguage = (CHAR8 *)AllocateZeroPool(strlena(PlatformLanguageCodeEnglish) + 1); -+ if (PlatformLanguage == NULL) { -+ return EFI_OUT_OF_RESOURCES; -+ } -+ strcpya(PlatformLanguage, PlatformLanguageCodeEnglish); -+ } -+ - Item = LibCheckVarGetFlag (&ChkPck, L"-l"); - if (Item) { - if (Language != NULL) { -@@ -314,14 +325,6 @@ - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); - -- ComponentName = NULL; -- ComponentName2 = NULL; -- Status = LibGetComponentNameProtocol ( -- DriverImageHandleBuffer[Index], -- &ComponentName, -- &ComponentName2 -- ); -- - DiagnosticsStatus = BS->OpenProtocol ( - DriverImageHandleBuffer[Index], - &gEfiDriverDiagnostics2ProtocolGuid, -@@ -418,37 +421,73 @@ - } else { - PrintToken (STRING_TOKEN (STR_SHELLENV_PROTID_ONE_VAR_D), HiiHandle, NumberOfChildren); - } -- -- Status = EFI_SUCCESS; -+ - DriverName = L""; -- SupportedLanguage = NULL; -- if (ComponentName != NULL) { -- if (ComponentName->GetDriverName != NULL) { -- SupportedLanguage = LibConvertSupportedLanguage (ComponentName->SupportedLanguages, Language); -+ Status = BS->OpenProtocol ( -+ DriverImageHandleBuffer[Index], -+ &gEfiComponentName2ProtocolGuid, -+ (VOID **) &ComponentName2, -+ NULL, -+ NULL, -+ EFI_OPEN_PROTOCOL_GET_PROTOCOL -+ ); -+ if (!EFI_ERROR (Status)) { -+ // -+ // Driver has Component Name 2 Protocol is available, we get the -+ // driver name var RFC 3066 language code -+ // -+ Status = ComponentName2->GetDriverName ( -+ ComponentName2, -+ PlatformLanguage, -+ &DriverName -+ ); -+ if (EFI_ERROR (Status)) { -+ // -+ // Current RFC3066 language code fails, we then extract the supported -+ // language from Component Name 2 protocol interface. -+ // -+ SupportedLanguage = ExtractSupportedLanguage(ComponentName2->SupportedLanguages, Language); -+ if (SupportedLanguage != NULL) { -+ Status = ComponentName2->GetDriverName ( -+ ComponentName2, -+ SupportedLanguage, -+ &DriverName -+ ); -+ FreePool(SupportedLanguage); -+ } -+ } -+ } -+ if (EFI_ERROR (Status)) { -+ // -+ // In case Component Name 2 protocol is not available or some error occurs -+ // when getting driver name from Component Name 2 protocol, we get driver -+ // name from Component Name protocol. -+ // -+ Status = BS->OpenProtocol ( -+ DriverImageHandleBuffer[Index], -+ &gEfiComponentNameProtocolGuid, -+ (VOID **) &ComponentName, -+ NULL, -+ NULL, -+ EFI_OPEN_PROTOCOL_GET_PROTOCOL -+ ); -+ if (!EFI_ERROR (Status)) { - Status = ComponentName->GetDriverName ( - ComponentName, -- SupportedLanguage, -+ Language, - &DriverName - ); - } -- } else if (ComponentName2 != NULL) { -- if (ComponentName2->GetDriverName != NULL) { -- SupportedLanguage = LibConvertSupportedLanguage (ComponentName2->SupportedLanguages, Language); -- Status = ComponentName2->GetDriverName ( -- ComponentName2, -- SupportedLanguage, -- &DriverName -- ); -- } - } -- if (SupportedLanguage != NULL) { -- FreePool (SupportedLanguage); -- } -- - if (EFI_ERROR (Status)) { -+ // -+ // Fails to get driver name from either Component Name 2 & Component Name -+ // Protocol, we show "" string as driver name. -+ // - DriverName = L""; - } - -+ - for (StringIndex = 0; StringIndex < StrLen (DriverName) && StringIndex < 35; StringIndex++) { - FormattedDriverName[StringIndex] = DriverName[StringIndex]; - } -@@ -491,6 +530,10 @@ - FreePool (Language); - } - -+ if (PlatformLanguage != NULL) { -+ FreePool (PlatformLanguage); -+ } -+ - ShellCloseHandleEnumerator (); - LibCheckVarFreeVarList (&ChkPck); - LibUnInitializeStrings ();