## @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 - 2018, 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 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
