## @file Udp6Dxe.inf
#  UDP packet service based on IPv6 stack.
#  
#  This module produces EFI UDPv6 Protocol which provides simple packet-oriented
#  services to transmit and receive UDP packets.
#                                                                                
#  Copyright (c) 2009 - 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                      = Udp6Dxe
  FILE_GUID                      = D912C7BC-F098-4367-92BA-E911083C7B0E
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = Udp6DriverEntryPoint
  UNLOAD_IMAGE                   = NetLibDefaultUnload
  MODULE_UNI_FILE                = Udp6Dxe.uni

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  Udp6Driver.h
  Udp6Driver.c
  Udp6Impl.c
  Udp6Impl.h
  ComponentName.c
  Udp6Main.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  MemoryAllocationLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  UefiRuntimeServicesTableLib
  UefiLib
  DebugLib
  IpIoLib
  NetLib
  DpcLib


[Protocols]
  gEfiIp6ProtocolGuid                           ## TO_START
  gEfiIp6ServiceBindingProtocolGuid             ## TO_START
  gEfiUdp6ServiceBindingProtocolGuid            ## BY_START
  gEfiUdp6ProtocolGuid                          ## BY_START

[UserExtensions.TianoCore."ExtraFiles"]
  Udp6DxeExtra.uni
