/** @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