## @file
#  TCPv4 I/O and TCPv6 I/O services.
#
#  This module provides EFI TCPv4 Protocol and EFI TCPv6 Protocol to send and receive data stream.
#  It might provide TCPv4 Protocol or TCPv6 Protocol or both of them that depends on 
#  which network stack has been loaded in system.
#
#
#  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                      = TcpDxe
  FILE_GUID                      = 1A7E4468-2F55-4a56-903C-01265EB7622B
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = TcpDriverEntryPoint
  UNLOAD_IMAGE                   = NetLibDefaultUnload
  MODULE_UNI_FILE                = TcpDxe.uni

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  TcpDriver.c
  SockImpl.c
  SockInterface.c
  TcpDispatcher.c
  TcpOutput.c
  TcpMain.c
  SockImpl.h
  TcpMisc.c
  TcpProto.h
  TcpOption.c
  TcpInput.c
  TcpFunc.h
  TcpOption.h
  TcpTimer.c
  TcpMain.h
  Socket.h
  ComponentName.c
  TcpIo.c
  TcpDriver.h


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DevicePathLib
  DebugLib
  MemoryAllocationLib
  UefiLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  UefiRuntimeServicesTableLib
  DpcLib
  NetLib
  IpIoLib


[Protocols]
  ## SOMETIMES_CONSUMES
  ## SOMETIMES_PRODUCES
  gEfiDevicePathProtocolGuid
  gEfiIp4ProtocolGuid                           ## TO_START
  gEfiIp4ServiceBindingProtocolGuid             ## TO_START
  gEfiTcp4ProtocolGuid                          ## BY_START
  gEfiTcp4ServiceBindingProtocolGuid            ## BY_START
  gEfiIp6ProtocolGuid                           ## TO_START
  gEfiIp6ServiceBindingProtocolGuid             ## TO_START
  gEfiTcp6ProtocolGuid                          ## BY_START
  gEfiTcp6ServiceBindingProtocolGuid            ## BY_START

[UserExtensions.TianoCore."ExtraFiles"]
  TcpDxeExtra.uni
