git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4693 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			359 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			359 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
 | 
						|
Copyright (c) 2005 - 2006, Intel Corporation
 | 
						|
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.
 | 
						|
 | 
						|
Module Name:
 | 
						|
 | 
						|
  Tcp4Func.h
 | 
						|
 | 
						|
Abstract:
 | 
						|
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef _TCP4_FUNC_H_
 | 
						|
#define _TCP4_FUNC_H_
 | 
						|
 | 
						|
//
 | 
						|
// Declaration of all the functions in TCP
 | 
						|
// protocol. It is intended to keep tcp.h
 | 
						|
// clear.
 | 
						|
//
 | 
						|
 | 
						|
//
 | 
						|
// Functions in tcp.c
 | 
						|
//
 | 
						|
BOOLEAN
 | 
						|
TcpFindTcbByPeer (
 | 
						|
  IN EFI_IPv4_ADDRESS  *Addr,
 | 
						|
  IN TCP_PORTNO        Port
 | 
						|
  );
 | 
						|
 | 
						|
TCP_CB  *
 | 
						|
TcpLocateTcb (
 | 
						|
  IN TCP_PORTNO  LocalPort,
 | 
						|
  IN UINT32      LocalIp,
 | 
						|
  IN TCP_PORTNO  RemotePort,
 | 
						|
  IN UINT32      RemoteIp,
 | 
						|
  IN BOOLEAN     Syn
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpInsertTcb (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
TCP_CB  *
 | 
						|
TcpCloneTcb (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
TCP_SEQNO
 | 
						|
TcpGetIss (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpInitTcbLocal (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpInitTcbPeer (
 | 
						|
  IN TCP_CB     *Tcb,
 | 
						|
  IN TCP_SEG    *Seg,
 | 
						|
  IN TCP_OPTION *Opt
 | 
						|
  );
 | 
						|
 | 
						|
UINT16
 | 
						|
TcpGetRcvMss (
 | 
						|
  IN SOCKET *Sock
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpSetState (
 | 
						|
  IN TCP_CB *Tcb,
 | 
						|
  IN UINT8  State
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Functions in Tcp4Output.c
 | 
						|
//
 | 
						|
INTN
 | 
						|
TcpSendIpPacket (
 | 
						|
  IN TCP_CB  *Tcb,
 | 
						|
  IN NET_BUF *Nbuf,
 | 
						|
  IN UINT32  Src,
 | 
						|
  IN UINT32  Dst
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpToSendData (
 | 
						|
  IN TCP_CB *Tcb,
 | 
						|
  IN INTN    Force
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpToSendAck (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpSendAck (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpSendZeroProbe (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpDeliverData (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpSendReset (
 | 
						|
  IN TCP_CB   *Tcb,
 | 
						|
  IN TCP_HEAD *Head,
 | 
						|
  IN INT32    Len,
 | 
						|
  IN UINT32   Local,
 | 
						|
  IN UINT32   Remote
 | 
						|
  );
 | 
						|
 | 
						|
UINT32
 | 
						|
TcpRcvWinOld (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
UINT32
 | 
						|
TcpRcvWinNow (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpRetransmit (
 | 
						|
  IN TCP_CB    *Tcb,
 | 
						|
  IN TCP_SEQNO Seq
 | 
						|
  );
 | 
						|
 | 
						|
UINT32
 | 
						|
TcpDataToSend (
 | 
						|
  IN TCP_CB *Tcb,
 | 
						|
  IN INTN   Force
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpVerifySegment (
 | 
						|
  IN NET_BUF *Nbuf
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpCheckSndQue (
 | 
						|
  IN LIST_ENTRY     *Head
 | 
						|
  );
 | 
						|
 | 
						|
NET_BUF *
 | 
						|
TcpGetSegmentSndQue (
 | 
						|
  IN TCP_CB    *Tcb,
 | 
						|
  IN TCP_SEQNO Seq,
 | 
						|
  IN UINT32    Len
 | 
						|
  );
 | 
						|
 | 
						|
NET_BUF *
 | 
						|
TcpGetSegmentSock (
 | 
						|
  IN TCP_CB    *Tcb,
 | 
						|
  IN TCP_SEQNO Seq,
 | 
						|
  IN UINT32    Len
 | 
						|
  );
 | 
						|
 | 
						|
NET_BUF *
 | 
						|
TcpGetSegment (
 | 
						|
  IN TCP_CB    *Tcb,
 | 
						|
  IN TCP_SEQNO Seq,
 | 
						|
  IN UINT32    Len
 | 
						|
  );
 | 
						|
 | 
						|
TCP_SEQNO
 | 
						|
TcpGetMaxSndNxt (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Functions from Tcp4Input.c
 | 
						|
//
 | 
						|
VOID
 | 
						|
TcpIcmpInput (
 | 
						|
  IN NET_BUF     *Nbuf,
 | 
						|
  IN ICMP_ERROR  IcmpErr,
 | 
						|
  IN UINT32      Src,
 | 
						|
  IN UINT32      Dst
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpInput (
 | 
						|
  IN NET_BUF *Nbuf,
 | 
						|
  IN UINT32  Src,
 | 
						|
  IN UINT32  Dst
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpSeqAcceptable (
 | 
						|
  IN TCP_CB  *Tcb,
 | 
						|
  IN TCP_SEG *Seg
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpFastRecover (
 | 
						|
  IN TCP_CB  *Tcb,
 | 
						|
  IN TCP_SEG *Seg
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpFastLossRecover (
 | 
						|
  IN TCP_CB  *Tcb,
 | 
						|
  IN TCP_SEG *Seg
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpComputeRtt (
 | 
						|
  IN TCP_CB *Tcb,
 | 
						|
  IN UINT32 Measure
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpTrimInWnd (
 | 
						|
  IN TCP_CB  *Tcb,
 | 
						|
  IN NET_BUF *Buf
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpQueueData (
 | 
						|
  IN TCP_CB  *Tcb,
 | 
						|
  IN NET_BUF *Nbuf
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpAdjustSndQue (
 | 
						|
  IN TCP_CB    *Tcb,
 | 
						|
  IN TCP_SEQNO Ack
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Functions from Tcp4Misc.c
 | 
						|
//
 | 
						|
UINT16
 | 
						|
TcpChecksum (
 | 
						|
  IN NET_BUF *Buf,
 | 
						|
  IN UINT16  HeadChecksum
 | 
						|
  );
 | 
						|
 | 
						|
TCP_SEG *
 | 
						|
TcpFormatNetbuf (
 | 
						|
  IN TCP_CB  *Tcb,
 | 
						|
  IN NET_BUF *Nbuf
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpOnAppConnect (
 | 
						|
  IN TCP_CB  *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpOnAppConsume (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpOnAppClose (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
INTN
 | 
						|
TcpOnAppSend (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpOnAppAbort (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpResetConnection (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
//
 | 
						|
// Functions in Tcp4Timer.c
 | 
						|
//
 | 
						|
VOID
 | 
						|
TcpClose (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
TcpTicking (
 | 
						|
  IN EFI_EVENT Event,
 | 
						|
  IN VOID      *Context
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpSetTimer (
 | 
						|
  IN TCP_CB *Tcb,
 | 
						|
  IN UINT16 Timer,
 | 
						|
  IN UINT32 TimeOut
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpClearTimer (
 | 
						|
  IN TCP_CB *Tcb,
 | 
						|
  IN UINT16 Timer
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpClearAllTimer (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpSetProbeTimer (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpSetKeepaliveTimer (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpBackoffRto (
 | 
						|
  IN TCP_CB *Tcb
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
TcpSetVariableData (
 | 
						|
  IN TCP4_SERVICE_DATA  *Tcp4Service
 | 
						|
  );
 | 
						|
 | 
						|
VOID
 | 
						|
TcpClearVariableData (
 | 
						|
  IN TCP4_SERVICE_DATA  *Tcp4Service
 | 
						|
  );
 | 
						|
 | 
						|
EFI_STATUS
 | 
						|
TcpInstallDevicePath (
 | 
						|
  IN SOCKET  *Sock
 | 
						|
  );
 | 
						|
 | 
						|
#endif
 |