## @file
# Provides interface to advanced shell functionality for parsing both handle and protocol database.
# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
# (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.
# (C) Copyright 2015 Hewlett Packard Enterprise Development LP
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##
[Defines]
INF_VERSION = 0x00010006
BASE_NAME = UefiHandleParsingLib
FILE_GUID = 3CDC7177-CC2A-4678-BA8F-1A936A093FA4
MODULE_TYPE = UEFI_DRIVER
VERSION_STRING = 1.0
LIBRARY_CLASS = HandleParsingLib|UEFI_APPLICATION UEFI_DRIVER DXE_RUNTIME_DRIVER
CONSTRUCTOR = HandleParsingLibConstructor
DESTRUCTOR = HandleParsingLibDestructor
#
# VALID_ARCHITECTURES = IA32 X64 EBC
#
[Sources.common]
UefiHandleParsingLib.c
UefiHandleParsingLib.h
UefiHandleParsingLib.uni
[Packages]
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
ShellPkg/ShellPkg.dec
[LibraryClasses]
UefiBootServicesTableLib
MemoryAllocationLib
DevicePathLib
BaseLib
BaseMemoryLib
DebugLib
FileHandleLib
PrintLib
UefiLib
HiiLib
SortLib
PeCoffGetEntryPointLib
[Protocols]
gEfiSimpleFileSystemProtocolGuid ## SOMETIMES_CONSUMES
# shell 2.0
gEfiShellProtocolGuid ## SOMETIMES_CONSUMES
gEfiShellParametersProtocolGuid ## SOMETIMES_CONSUMES
# 'old' shell
gEfiShellEnvironment2Guid ## SOMETIMES_CONSUMES
gEfiShellInterfaceGuid ## SOMETIMES_CONSUMES
gEfiUnicodeCollation2ProtocolGuid ## UNDEFINED
gEfiDevicePathToTextProtocolGuid ## UNDEFINED
gEfiBusSpecificDriverOverrideProtocolGuid ## UNDEFINED
gEfiDevicePathUtilitiesProtocolGuid ## UNDEFINED
gEfiDevicePathFromTextProtocolGuid ## UNDEFINED
gEfiPlatformDriverOverrideProtocolGuid ## UNDEFINED
gEfiSimpleTextInProtocolGuid ## UNDEFINED
gEfiPlatformToDriverConfigurationProtocolGuid ## UNDEFINED
gEfiDriverSupportedEfiVersionProtocolGuid ## UNDEFINED
gEfiLoadedImageProtocolGuid ## CONSUMES
gEfiDevicePathProtocolGuid ## CONSUMES
gEfiLoadedImageDevicePathProtocolGuid ## UNDEFINED
gEfiSimpleTextOutProtocolGuid ## UNDEFINED
gEfiSimplePointerProtocolGuid ## UNDEFINED
gEfiAbsolutePointerProtocolGuid ## UNDEFINED
gEfiSerialIoProtocolGuid ## UNDEFINED
gEfiEdidDiscoveredProtocolGuid ## UNDEFINED
gEfiEdidActiveProtocolGuid ## UNDEFINED
gEfiEdidOverrideProtocolGuid ## UNDEFINED
gEfiLoadFileProtocolGuid ## UNDEFINED
gEfiLoadFile2ProtocolGuid ## UNDEFINED
gEfiTapeIoProtocolGuid ## UNDEFINED
gEfiDiskIoProtocolGuid ## UNDEFINED
gEfiBlockIoProtocolGuid ## UNDEFINED
gEfiUnicodeCollationProtocolGuid ## UNDEFINED
gEfiPciRootBridgeIoProtocolGuid ## UNDEFINED
gEfiPciIoProtocolGuid ## UNDEFINED
gEfiScsiPassThruProtocolGuid ## UNDEFINED
gEfiScsiIoProtocolGuid ## UNDEFINED
gEfiExtScsiPassThruProtocolGuid ## UNDEFINED
gEfiIScsiInitiatorNameProtocolGuid ## UNDEFINED
gEfiUsbIoProtocolGuid ## UNDEFINED
gEfiUsbHcProtocolGuid ## UNDEFINED
gEfiUsb2HcProtocolGuid ## UNDEFINED
gEfiDebugSupportProtocolGuid ## UNDEFINED
gEfiDebugPortProtocolGuid ## UNDEFINED
gEfiDecompressProtocolGuid ## UNDEFINED
gEfiAcpiTableProtocolGuid ## UNDEFINED
gEfiEbcProtocolGuid ## UNDEFINED
gEfiSimpleNetworkProtocolGuid ## UNDEFINED
gEfiNetworkInterfaceIdentifierProtocolGuid ## UNDEFINED
gEfiNetworkInterfaceIdentifierProtocolGuid_31 ## UNDEFINED
gEfiPxeBaseCodeProtocolGuid ## UNDEFINED
gEfiPxeBaseCodeCallbackProtocolGuid ## UNDEFINED
gEfiBisProtocolGuid ## UNDEFINED
gEfiManagedNetworkServiceBindingProtocolGuid ## UNDEFINED
gEfiManagedNetworkProtocolGuid ## UNDEFINED
gEfiArpServiceBindingProtocolGuid ## UNDEFINED
gEfiArpProtocolGuid ## UNDEFINED
gEfiDhcp4ServiceBindingProtocolGuid ## UNDEFINED
gEfiDhcp4ProtocolGuid ## UNDEFINED
gEfiTcp4ServiceBindingProtocolGuid ## UNDEFINED
gEfiTcp4ProtocolGuid ## UNDEFINED
gEfiIp4ServiceBindingProtocolGuid ## UNDEFINED
gEfiIp4ProtocolGuid ## UNDEFINED
gEfiIp4ConfigProtocolGuid ## UNDEFINED
gEfiIp4Config2ProtocolGuid ## UNDEFINED
gEfiUdp4ServiceBindingProtocolGuid ## UNDEFINED
gEfiUdp4ProtocolGuid ## UNDEFINED
gEfiMtftp4ServiceBindingProtocolGuid ## UNDEFINED
gEfiMtftp4ProtocolGuid ## UNDEFINED
gEfiAuthenticationInfoProtocolGuid ## UNDEFINED
gEfiHashServiceBindingProtocolGuid ## UNDEFINED
gEfiHashProtocolGuid ## UNDEFINED
gEfiHiiFontProtocolGuid ## UNDEFINED
gEfiHiiStringProtocolGuid ## UNDEFINED
gEfiHiiImageProtocolGuid ## UNDEFINED
gEfiHiiConfigRoutingProtocolGuid ## UNDEFINED
gEfiHiiConfigAccessProtocolGuid ## UNDEFINED
gEfiFormBrowser2ProtocolGuid ## UNDEFINED
gEfiDeviceIoProtocolGuid ## UNDEFINED
gEfiUgaDrawProtocolGuid ## UNDEFINED
gEfiUgaIoProtocolGuid ## UNDEFINED
gEfiDriverConfigurationProtocolGuid ## UNDEFINED
gEfiDriverConfiguration2ProtocolGuid ## UNDEFINED
gEfiSimpleTextInputExProtocolGuid ## UNDEFINED
gEfiIp6ServiceBindingProtocolGuid ## UNDEFINED
gEfiIp6ProtocolGuid ## UNDEFINED
gEfiIp6ConfigProtocolGuid ## UNDEFINED
gEfiMtftp6ServiceBindingProtocolGuid ## UNDEFINED
gEfiMtftp6ProtocolGuid ## UNDEFINED
gEfiDhcp6ServiceBindingProtocolGuid ## UNDEFINED
gEfiDhcp6ProtocolGuid ## UNDEFINED
gEfiUdp6ServiceBindingProtocolGuid ## UNDEFINED
gEfiUdp6ProtocolGuid ## UNDEFINED
gEfiTcp6ServiceBindingProtocolGuid ## UNDEFINED
gEfiTcp6ProtocolGuid ## UNDEFINED
gEfiVlanConfigProtocolGuid ## UNDEFINED
gEfiEapProtocolGuid ## UNDEFINED
gEfiEapManagementProtocolGuid ## UNDEFINED
gEfiFtp4ServiceBindingProtocolGuid ## UNDEFINED
gEfiFtp4ProtocolGuid ## UNDEFINED
gEfiIpSecConfigProtocolGuid ## UNDEFINED
gEfiDriverHealthProtocolGuid ## UNDEFINED
gEfiDeferredImageLoadProtocolGuid ## UNDEFINED
gEfiUserCredentialProtocolGuid ## UNDEFINED
gEfiUserManagerProtocolGuid ## UNDEFINED
gEfiAtaPassThruProtocolGuid ## UNDEFINED
gEfiFirmwareManagementProtocolGuid ## UNDEFINED
gEfiIpSecProtocolGuid ## UNDEFINED
gEfiIpSec2ProtocolGuid ## UNDEFINED
gEfiKmsProtocolGuid ## UNDEFINED
gEfiBlockIo2ProtocolGuid ## UNDEFINED
gEfiStorageSecurityCommandProtocolGuid ## UNDEFINED
gEfiUserCredential2ProtocolGuid ## UNDEFINED
gPcdProtocolGuid ## UNDEFINED
gEfiTcgProtocolGuid ## UNDEFINED
gEfiHiiPackageListProtocolGuid ## UNDEFINED
gEfiDriverFamilyOverrideProtocolGuid ## UNDEFINED
gEfiIdeControllerInitProtocolGuid ## UNDEFINED
gEfiDiskIo2ProtocolGuid ## UNDEFINED
gEfiAdapterInformationProtocolGuid ## UNDEFINED
gEfiShellDynamicCommandProtocolGuid ## UNDEFINED
gEfiDiskInfoProtocolGuid ## UNDEFINED
gGetPcdInfoProtocolGuid ## UNDEFINED
gEfiBdsArchProtocolGuid ## UNDEFINED
gEfiCpuArchProtocolGuid ## UNDEFINED
gEfiMetronomeArchProtocolGuid ## UNDEFINED
gEfiMonotonicCounterArchProtocolGuid ## UNDEFINED
gEfiRealTimeClockArchProtocolGuid ## UNDEFINED
gEfiResetArchProtocolGuid ## UNDEFINED
gEfiRuntimeArchProtocolGuid ## UNDEFINED
gEfiSecurityArchProtocolGuid ## UNDEFINED
gEfiTimerArchProtocolGuid ## UNDEFINED
gEfiVariableWriteArchProtocolGuid ## UNDEFINED
gEfiVariableArchProtocolGuid ## UNDEFINED
gEfiSecurityPolicyProtocolGuid ## UNDEFINED
gEfiWatchdogTimerArchProtocolGuid ## UNDEFINED
gEfiStatusCodeRuntimeProtocolGuid ## UNDEFINED
gEfiSmbusHcProtocolGuid ## UNDEFINED
gEfiFirmwareVolume2ProtocolGuid ## UNDEFINED
gEfiFirmwareVolumeBlockProtocolGuid ## UNDEFINED
gEfiCapsuleArchProtocolGuid ## UNDEFINED
gEfiMpServiceProtocolGuid ## UNDEFINED
gEfiPciHostBridgeResourceAllocationProtocolGuid ## UNDEFINED
gEfiPciPlatformProtocolGuid ## UNDEFINED
gEfiPciOverrideProtocolGuid ## UNDEFINED
gEfiPciEnumerationCompleteProtocolGuid ## UNDEFINED
gEfiIncompatiblePciDeviceSupportProtocolGuid ## UNDEFINED
gEfiPciHotPlugInitProtocolGuid ## UNDEFINED
gEfiPciHotPlugRequestProtocolGuid ## UNDEFINED
gEfiSmbiosProtocolGuid ## UNDEFINED
gEfiS3SaveStateProtocolGuid ## UNDEFINED
gEfiS3SmmSaveStateProtocolGuid ## UNDEFINED
gEfiRscHandlerProtocolGuid ## UNDEFINED
gEfiSmmRscHandlerProtocolGuid ## UNDEFINED
gEfiAcpiSdtProtocolGuid ## UNDEFINED
gEfiSioProtocolGuid ## UNDEFINED
gEfiSmmCpuIo2ProtocolGuid ## UNDEFINED
gEfiSmmBase2ProtocolGuid ## UNDEFINED
gEfiSmmAccess2ProtocolGuid ## UNDEFINED
gEfiSmmControl2ProtocolGuid ## UNDEFINED
gEfiSmmConfigurationProtocolGuid ## UNDEFINED
gEfiSmmReadyToLockProtocolGuid ## UNDEFINED
gEfiDxeSmmReadyToLockProtocolGuid ## UNDEFINED
gEfiSmmCommunicationProtocolGuid ## UNDEFINED
gEfiSmmStatusCodeProtocolGuid ## UNDEFINED
gEfiSmmCpuProtocolGuid ## UNDEFINED
gEfiSmmPciRootBridgeIoProtocolGuid ## UNDEFINED
gEfiSmmSwDispatch2ProtocolGuid ## UNDEFINED
gEfiSmmSxDispatch2ProtocolGuid ## UNDEFINED
gEfiSmmPeriodicTimerDispatch2ProtocolGuid ## UNDEFINED
gEfiSmmUsbDispatch2ProtocolGuid ## UNDEFINED
gEfiSmmGpiDispatch2ProtocolGuid ## UNDEFINED
gEfiSmmStandbyButtonDispatch2ProtocolGuid ## UNDEFINED
gEfiSmmPowerButtonDispatch2ProtocolGuid ## UNDEFINED
gEfiSmmIoTrapDispatch2ProtocolGuid ## UNDEFINED
gEfiPcdProtocolGuid ## UNDEFINED
gEfiFirmwareVolumeBlock2ProtocolGuid ## UNDEFINED
gEfiCpuIo2ProtocolGuid ## UNDEFINED
gEfiLegacyRegion2ProtocolGuid ## UNDEFINED
gEfiSecurity2ArchProtocolGuid ## UNDEFINED
gEfiSmmEndOfDxeProtocolGuid ## UNDEFINED
gEfiIsaHcProtocolGuid ## UNDEFINED
gEfiIsaHcServiceBindingProtocolGuid ## UNDEFINED
gEfiSioControlProtocolGuid ## UNDEFINED
gEfiGetPcdInfoProtocolGuid ## UNDEFINED
gEfiI2cMasterProtocolGuid ## UNDEFINED
gEfiI2cIoProtocolGuid ## UNDEFINED
gEfiI2cEnumerateProtocolGuid ## UNDEFINED
gEfiI2cHostProtocolGuid ## UNDEFINED
gEfiI2cBusConfigurationManagementProtocolGuid ## UNDEFINED
gEfiTcg2ProtocolGuid ## UNDEFINED
gEfiTimestampProtocolGuid ## UNDEFINED
gEfiRngProtocolGuid ## UNDEFINED
gEfiNvmExpressPassThruProtocolGuid ## UNDEFINED
gEfiHash2ServiceBindingProtocolGuid ## UNDEFINED
gEfiHash2ProtocolGuid ## UNDEFINED
gEfiBlockIoCryptoProtocolGuid ## UNDEFINED
gEfiSmartCardReaderProtocolGuid ## UNDEFINED
gEfiSmartCardEdgeProtocolGuid ## UNDEFINED
gEfiUsbFunctionIoProtocolGuid ## UNDEFINED
gEfiBluetoothHcProtocolGuid ## UNDEFINED
gEfiBluetoothIoServiceBindingProtocolGuid ## UNDEFINED
gEfiBluetoothIoProtocolGuid ## UNDEFINED
gEfiBluetoothConfigProtocolGuid ## UNDEFINED
gEfiRegularExpressionProtocolGuid ## UNDEFINED
gEfiBootManagerPolicyProtocolGuid ## UNDEFINED
gEfiConfigKeywordHandlerProtocolGuid ## UNDEFINED
gEfiWiFiProtocolGuid ## UNDEFINED
gEfiEapManagement2ProtocolGuid ## UNDEFINED
gEfiEapConfigurationProtocolGuid ## UNDEFINED
gEfiPkcs7VerifyProtocolGuid ## UNDEFINED
gEfiDns4ServiceBindingProtocolGuid ## UNDEFINED
gEfiDns4ProtocolGuid ## UNDEFINED
gEfiDns6ServiceBindingProtocolGuid ## UNDEFINED
gEfiDns6ProtocolGuid ## UNDEFINED
gEfiHttpServiceBindingProtocolGuid ## UNDEFINED
gEfiHttpProtocolGuid ## UNDEFINED
gEfiHttpUtilitiesProtocolGuid ## UNDEFINED
gEfiRestProtocolGuid ## UNDEFINED
gEfiMmEndOfDxeProtocolGuid ## UNDEFINED
gEfiMmIoTrapDispatchProtocolGuid ## UNDEFINED
gEfiMmPowerButtonDispatchProtocolGuid ## UNDEFINED
gEfiMmStandbyButtonDispatchProtocolGuid ## UNDEFINED
gEfiMmGpiDispatchProtocolGuid ## UNDEFINED
gEfiMmUsbDispatchProtocolGuid ## UNDEFINED
gEfiMmPeriodicTimerDispatchProtocolGuid ## UNDEFINED
gEfiMmSxDispatchProtocolGuid ## UNDEFINED
gEfiMmSwDispatchProtocolGuid ## UNDEFINED
gEfiMmPciRootBridgeIoProtocolGuid ## UNDEFINED
gEfiMmCpuProtocolGuid ## UNDEFINED
gEfiMmStatusCodeProtocolGuid ## UNDEFINED
gEfiDxeMmReadyToLockProtocolGuid ## UNDEFINED
gEfiMmConfigurationProtocolGuid ## UNDEFINED
gEfiMmReadyToLockProtocolGuid ## UNDEFINED
gEfiMmControlProtocolGuid ## UNDEFINED
gEfiMmAccessProtocolGuid ## UNDEFINED
gEfiMmBaseProtocolGuid ## UNDEFINED
gEfiMmCpuIoProtocolGuid ## UNDEFINED
gEfiMmRscHandlerProtocolGuid ## UNDEFINED
gEfiMmCommunicationProtocolGuid ## UNDEFINED
gEfiTlsServiceBindingProtocolGuid ## UNDEFINED
gEfiTlsProtocolGuid ## UNDEFINED
gEfiTlsConfigurationProtocolGuid ## UNDEFINED
gEfiSupplicantServiceBindingProtocolGuid ## UNDEFINED
gEfiSupplicantProtocolGuid ## UNDEFINED
gEfiWiFi2ProtocolGuid ## UNDEFINED
gEfiRamDiskProtocolGuid ## UNDEFINED
gEfiHiiImageDecoderProtocolGuid ## UNDEFINED
gEfiHiiImageExProtocolGuid ## UNDEFINED
gEfiSdMmcPassThruProtocolGuid ## UNDEFINED
gEfiEraseBlockProtocolGuid ## UNDEFINED
gEfiBluetoothAttributeProtocolGuid ## UNDEFINED
gEfiBluetoothAttributeServiceBindingProtocolGuid ## UNDEFINED
gEfiBluetoothLeConfigProtocolGuid ## UNDEFINED
gEfiUfsDeviceConfigProtocolGuid ## UNDEFINED
gEfiHttpBootCallbackProtocolGuid ## UNDEFINED
gEfiResetNotificationProtocolGuid ## UNDEFINED
gEfiPartitionInfoProtocolGuid ## UNDEFINED
gEfiHiiPopupProtocolGuid ## UNDEFINED
[Guids]
gEfiFileInfoGuid ## UNDEFINED
gEfiShellEnvironment2ExtGuid ## SOMETIMES_CONSUMES ## GUID
gEfiPcAnsiGuid ## UNDEFINED
gEfiVT100Guid ## UNDEFINED
gEfiVT100PlusGuid ## UNDEFINED
gEfiVTUTF8Guid ## UNDEFINED
gEfiStandardErrorDeviceGuid ## UNDEFINED
gEfiConsoleInDeviceGuid ## UNDEFINED
gEfiConsoleOutDeviceGuid ## UNDEFINED
gEfiFileSystemInfoGuid ## UNDEFINED
gEfiGlobalVariableGuid ## UNDEFINED
gEfiPartTypeSystemPartGuid ## UNDEFINED
gEfiPartTypeLegacyMbrGuid ## UNDEFINED
gHandleParsingHiiGuid ## UNDEFINED
gEfiAdapterInfoMediaStateGuid ## SOMETIMES_CONSUMES ## GUID
gEfiAdapterInfoNetworkBootGuid ## SOMETIMES_CONSUMES ## GUID
gEfiAdapterInfoSanMacAddressGuid ## SOMETIMES_CONSUMES ## GUID
gEfiAdapterInfoUndiIpv6SupportGuid ## SOMETIMES_CONSUMES ## GUID
[Pcd.common]
gEfiShellPkgTokenSpaceGuid.PcdShellIncludeNtGuids ## CONSUMES