#/** @file
# Instance of Device Path Library based on Device Path Protocol.
#
#  Device Path Library that layers on top of the UEFI 2.0 Device Path Protocol.
#  This library is not available for EFI 1.10 modules.
#
#  Copyright (c) 2007 - 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]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = UefiDevicePathLibDevicePathProtocol
  FILE_GUID                      = 050EB8C6-C12E-4b86-892B-40985E8B3137
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = DevicePathLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER 

  CONSTRUCTOR                    = DevicePathLibConstructor

#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources.common]
  UefiDevicePathLib.c


[Packages]
  MdePkg/MdePkg.dec


[LibraryClasses]
  UefiBootServicesTableLib
  BaseMemoryLib
  MemoryAllocationLib
  BaseLib
  DebugLib


[Protocols]
  gEfiDevicePathProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED
  gEfiDevicePathUtilitiesProtocolGuid           # PROTOCOL ALWAYS_CONSUMED


[Depex]
  gEfiDevicePathUtilitiesProtocolGuid
