## @file
# Instance of Device Path Library based on Memory Allocation Library.
#
# Device Path Library that layers on top of the Memory Allocation Library.
#
# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
#
#  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]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = UefiDevicePathLib
  MODULE_UNI_FILE                = UefiDevicePathLib.uni
  FILE_GUID                      = 91c1677a-e57f-4191-8b8e-eb7711a716e0
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = DevicePathLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER SMM_CORE


#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  DevicePathUtilities.c
  DevicePathToText.c
  DevicePathFromText.c
  UefiDevicePathLib.c
  UefiDevicePathLib.h

[Packages]
  MdePkg/MdePkg.dec


[LibraryClasses]
  BaseLib
  MemoryAllocationLib
  DebugLib
  BaseMemoryLib
  PcdLib
  PrintLib

[Guids]
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiVTUTF8Guid
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiVT100Guid
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiVT100PlusGuid
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiPcAnsiGuid
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiUartDevicePathGuid
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiSasDevicePathGuid
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiVirtualDiskGuid
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiVirtualCdGuid
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiPersistentVirtualDiskGuid
  ## SOMETIMES_CONSUMES  ## GUID
  gEfiPersistentVirtualCdGuid

[Protocols]
  gEfiDevicePathProtocolGuid                    ## SOMETIMES_CONSUMES
  gEfiDebugPortProtocolGuid                     ## UNDEFINED

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdMaximumDevicePathNodeCount    ## SOMETIMES_CONSUMES

