## @file
#  This library instance provides TCP services by EFI TCPv4/TCPv6 Protocols.
#  
#  Copyright (c) 2010 - 2017, 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                      = DxeTcpIoLib
  MODULE_UNI_FILE                = DxeTcpIoLib.uni
  FILE_GUID                      = D4608509-1AB0-4cc7-827A-AB8E1E7BD3E6
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = TcpIoLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  DxeTcpIoLib.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  BaseLib
  DebugLib
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib

[Protocols]
  gEfiTcp4ServiceBindingProtocolGuid            ## SOMETIMES_CONSUMES
  gEfiTcp4ProtocolGuid                          ## SOMETIMES_CONSUMES
  gEfiTcp6ServiceBindingProtocolGuid            ## SOMETIMES_CONSUMES
  gEfiTcp6ProtocolGuid                          ## SOMETIMES_CONSUMES
