-/** @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 NET_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
- );
-
-#endif
+/** @file\r
+\r
+Copyright (c) 2005 - 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+ Tcp4Func.h\r
+\r
+Abstract:\r
+\r
+\r
+**/\r
+\r
+#ifndef _TCP4_FUNC_H_\r
+#define _TCP4_FUNC_H_\r
+\r
+//\r
+// Declaration of all the functions in TCP\r
+// protocol. It is intended to keep tcp.h\r
+// clear.\r
+//\r
+\r
+//\r
+// Functions in tcp.c\r
+//\r
+BOOLEAN\r
+TcpFindTcbByPeer (\r
+ IN EFI_IPv4_ADDRESS *Addr,\r
+ IN TCP_PORTNO Port\r
+ );\r
+\r
+TCP_CB *\r
+TcpLocateTcb (\r
+ IN TCP_PORTNO LocalPort,\r
+ IN UINT32 LocalIp,\r
+ IN TCP_PORTNO RemotePort,\r
+ IN UINT32 RemoteIp,\r
+ IN BOOLEAN Syn\r
+ );\r
+\r
+INTN\r
+TcpInsertTcb (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+TCP_CB *\r
+TcpCloneTcb (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+TCP_SEQNO\r
+TcpGetIss (\r
+ VOID\r
+ );\r
+\r
+VOID\r
+TcpInitTcbLocal (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+VOID\r
+TcpInitTcbPeer (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_SEG *Seg,\r
+ IN TCP_OPTION *Opt\r
+ );\r
+\r
+UINT16\r
+TcpGetRcvMss (\r
+ IN SOCKET *Sock\r
+ );\r
+\r
+VOID\r
+TcpSetState (\r
+ IN TCP_CB *Tcb,\r
+ IN UINT8 State\r
+ );\r
+\r
+//\r
+// Functions in Tcp4Output.c\r
+//\r
+INTN\r
+TcpSendIpPacket (\r
+ IN TCP_CB *Tcb,\r
+ IN NET_BUF *Nbuf,\r
+ IN UINT32 Src,\r
+ IN UINT32 Dst\r
+ );\r
+\r
+INTN\r
+TcpToSendData (\r
+ IN TCP_CB *Tcb,\r
+ IN INTN Force\r
+ );\r
+\r
+VOID\r
+TcpToSendAck (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+VOID\r
+TcpSendAck (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+INTN\r
+TcpSendZeroProbe (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+INTN\r
+TcpDeliverData (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+INTN\r
+TcpSendReset (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_HEAD *Head,\r
+ IN INT32 Len,\r
+ IN UINT32 Local,\r
+ IN UINT32 Remote\r
+ );\r
+\r
+UINT32\r
+TcpRcvWinOld (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+UINT32\r
+TcpRcvWinNow (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+INTN\r
+TcpRetransmit (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_SEQNO Seq\r
+ );\r
+\r
+UINT32\r
+TcpDataToSend (\r
+ IN TCP_CB *Tcb,\r
+ IN INTN Force\r
+ );\r
+\r
+INTN\r
+TcpVerifySegment (\r
+ IN NET_BUF *Nbuf\r
+ );\r
+\r
+INTN\r
+TcpCheckSndQue (\r
+ IN NET_LIST_ENTRY *Head\r
+ );\r
+\r
+NET_BUF *\r
+TcpGetSegmentSndQue (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_SEQNO Seq,\r
+ IN UINT32 Len\r
+ );\r
+\r
+NET_BUF *\r
+TcpGetSegmentSock (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_SEQNO Seq,\r
+ IN UINT32 Len\r
+ );\r
+\r
+NET_BUF *\r
+TcpGetSegment (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_SEQNO Seq,\r
+ IN UINT32 Len\r
+ );\r
+\r
+TCP_SEQNO\r
+TcpGetMaxSndNxt (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+//\r
+// Functions from Tcp4Input.c\r
+//\r
+VOID\r
+TcpIcmpInput (\r
+ IN NET_BUF *Nbuf,\r
+ IN ICMP_ERROR IcmpErr,\r
+ IN UINT32 Src,\r
+ IN UINT32 Dst\r
+ );\r
+\r
+INTN\r
+TcpInput (\r
+ IN NET_BUF *Nbuf,\r
+ IN UINT32 Src,\r
+ IN UINT32 Dst\r
+ );\r
+\r
+INTN\r
+TcpSeqAcceptable (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_SEG *Seg\r
+ );\r
+\r
+VOID\r
+TcpFastRecover (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_SEG *Seg\r
+ );\r
+\r
+VOID\r
+TcpFastLossRecover (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_SEG *Seg\r
+ );\r
+\r
+VOID\r
+TcpComputeRtt (\r
+ IN TCP_CB *Tcb,\r
+ IN UINT32 Measure\r
+ );\r
+\r
+INTN\r
+TcpTrimInWnd (\r
+ IN TCP_CB *Tcb,\r
+ IN NET_BUF *Buf\r
+ );\r
+\r
+VOID\r
+TcpQueueData (\r
+ IN TCP_CB *Tcb,\r
+ IN NET_BUF *Nbuf\r
+ );\r
+\r
+VOID\r
+TcpAdjustSndQue (\r
+ IN TCP_CB *Tcb,\r
+ IN TCP_SEQNO Ack\r
+ );\r
+\r
+//\r
+// Functions from Tcp4Misc.c\r
+//\r
+UINT16\r
+TcpChecksum (\r
+ IN NET_BUF *Buf,\r
+ IN UINT16 HeadChecksum\r
+ );\r
+\r
+TCP_SEG *\r
+TcpFormatNetbuf (\r
+ IN TCP_CB *Tcb,\r
+ IN NET_BUF *Nbuf\r
+ );\r
+\r
+VOID\r
+TcpOnAppConnect (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+INTN\r
+TcpOnAppConsume (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+VOID\r
+TcpOnAppClose (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+INTN\r
+TcpOnAppSend (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+VOID\r
+TcpOnAppAbort (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+VOID\r
+TcpResetConnection (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+//\r
+// Functions in Tcp4Timer.c\r
+//\r
+VOID\r
+TcpClose (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+VOID\r
+EFIAPI\r
+TcpTicking (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
+\r
+VOID\r
+TcpSetTimer (\r
+ IN TCP_CB *Tcb,\r
+ IN UINT16 Timer,\r
+ IN UINT32 TimeOut\r
+ );\r
+\r
+VOID\r
+TcpClearTimer (\r
+ IN TCP_CB *Tcb,\r
+ IN UINT16 Timer\r
+ );\r
+\r
+VOID\r
+TcpClearAllTimer (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+VOID\r
+TcpSetProbeTimer (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+VOID\r
+TcpSetKeepaliveTimer (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+VOID\r
+TcpBackoffRto (\r
+ IN TCP_CB *Tcb\r
+ );\r
+\r
+EFI_STATUS\r
+TcpSetVariableData (\r
+ IN TCP4_SERVICE_DATA *Tcp4Service\r
+ );\r
+\r
+VOID\r
+TcpClearVariableData (\r
+ IN TCP4_SERVICE_DATA *Tcp4Service\r
+ );\r
+\r
+EFI_STATUS\r
+TcpInstallDevicePath (\r
+ IN SOCKET *Sock\r
+ );\r
+\r
+#endif\r