## @file
#  Device path driver that produces three UEFI device path protocols.
#
#  This driver produces Device Path Utilities protocol and optionally
#  DevicePahtToText and DevicePathFromText protocols based on feature flags
#  PcdDevicePathSupportDevicePathToText & PcdDevicePathSupportDevicePathFromText
#  respectively.
#
#  Copyright (c) 2006 - 2010, Intel Corporation. <BR>
#  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                      = DevicePathDxe
  FILE_GUID                      = 9B680FCE-AD6B-4F3A-B60B-F59899003443
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = DevicePathEntryPoint

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  DevicePathUtilities.c
  DevicePathToText.c   ||||PcdDevicePathSupportDevicePathToText
  DevicePathFromText.c ||||PcdDevicePathSupportDevicePathFromText
  DevicePath.h
  DevicePath.c

[Packages]
  MdeModulePkg/MdeModulePkg.dec
  MdePkg/MdePkg.dec

[LibraryClasses]
  PcdLib
  DevicePathLib
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  BaseLib
  UefiDriverEntryPoint
  PrintLib
  DebugLib

[Guids]
  gEfiVTUTF8Guid         | PcdDevicePathSupportDevicePathFromText OR PcdDevicePathSupportDevicePathToText ## SOMETIMES_CONSUMES ## GUID
  gEfiVT100Guid          | PcdDevicePathSupportDevicePathFromText OR PcdDevicePathSupportDevicePathToText ## SOMETIMES_CONSUMES ## GUID
  gEfiVT100PlusGuid      | PcdDevicePathSupportDevicePathFromText OR PcdDevicePathSupportDevicePathToText ## SOMETIMES_CONSUMES ## GUID
  gEfiPcAnsiGuid         | PcdDevicePathSupportDevicePathFromText OR PcdDevicePathSupportDevicePathToText ## SOMETIMES_CONSUMES ## GUID
  gEfiUartDevicePathGuid | PcdDevicePathSupportDevicePathFromText OR PcdDevicePathSupportDevicePathToText ## SOMETIMES_CONSUMES ## GUID
  gEfiSasDevicePathGuid  | PcdDevicePathSupportDevicePathFromText OR PcdDevicePathSupportDevicePathToText ## SOMETIMES_CONSUMES ## GUID
  
[Protocols]
  gEfiDevicePathToTextProtocolGuid   | PcdDevicePathSupportDevicePathFromText ## PRODUCES
  gEfiDevicePathFromTextProtocolGuid | PcdDevicePathSupportDevicePathToText ## PRODUCES
  gEfiDevicePathUtilitiesProtocolGuid ## CONSUMES
  gEfiDebugPortProtocolGuid          | PcdDevicePathSupportDevicePathFromText OR PcdDevicePathSupportDevicePathToText ## SOMETIMES_CONSUMES ## GUID

[FeaturePcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdDevicePathSupportDevicePathFromText
  gEfiMdeModulePkgTokenSpaceGuid.PcdDevicePathSupportDevicePathToText

[Depex]
  TRUE
