/** @file\r
\r
-Copyright (c) 2005 - 2006, Intel Corporation\r
+Copyright (c) 2005 - 2007, 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
\r
UINT32 mTcpTick = 1000;\r
\r
-STATIC\r
VOID\r
TcpConnectTimeout (\r
IN TCP_CB *Tcb\r
);\r
\r
-STATIC\r
VOID\r
TcpRexmitTimeout (\r
IN TCP_CB *Tcb\r
);\r
\r
-STATIC\r
VOID\r
TcpProbeTimeout (\r
IN TCP_CB *Tcb\r
);\r
\r
-STATIC\r
VOID\r
TcpKeepaliveTimeout (\r
IN TCP_CB *Tcb\r
);\r
\r
-STATIC\r
VOID\r
TcpFinwait2Timeout (\r
IN TCP_CB *Tcb\r
);\r
\r
-STATIC\r
VOID\r
Tcp2MSLTimeout (\r
IN TCP_CB *Tcb\r
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
TcpConnectTimeout (\r
IN TCP_CB *Tcb\r
)\r
{\r
if (!TCP_CONNECTED (Tcb->State)) {\r
- TCP4_DEBUG_ERROR (("TcpConnectTimeout: connection closed "\r
- "because conenction timer timeout for TCB %x\n", Tcb));\r
+ DEBUG ((EFI_D_ERROR, "TcpConnectTimeout: connection closed "\r
+ "because conenction timer timeout for TCB %p\n", Tcb));\r
\r
if (EFI_ABORTED == Tcb->Sk->SockError) {\r
SOCK_ERROR (Tcb->Sk, EFI_TIMEOUT);\r
}\r
\r
if (TCP_SYN_RCVD == Tcb->State) {\r
- TCP4_DEBUG_WARN (("TcpConnectTimeout: send reset because "\r
- "connection timer timeout for TCB %x\n", Tcb));\r
+ DEBUG ((EFI_D_WARN, "TcpConnectTimeout: send reset because "\r
+ "connection timer timeout for TCB %p\n", Tcb));\r
\r
TcpResetConnection (Tcb);\r
\r
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
TcpRexmitTimeout (\r
IN TCP_CB *Tcb\r
{\r
UINT32 FlightSize;\r
\r
- TCP4_DEBUG_WARN (("TcpRexmitTimeout: transmission "\r
- "timeout for TCB %x\n", Tcb));\r
+ DEBUG ((EFI_D_WARN, "TcpRexmitTimeout: transmission "\r
+ "timeout for TCB %p\n", Tcb));\r
\r
//\r
// Set the congestion window. FlightSize is the\r
// yet ACKed.\r
//\r
FlightSize = TCP_SUB_SEQ (Tcb->SndNxt, Tcb->SndUna);\r
- Tcb->Ssthresh = NET_MAX ((UINT32) (2 * Tcb->SndMss), FlightSize / 2);\r
+ Tcb->Ssthresh = MAX ((UINT32) (2 * Tcb->SndMss), FlightSize / 2);\r
\r
Tcb->CWnd = Tcb->SndMss;\r
Tcb->LossRecover = Tcb->SndNxt;\r
if (Tcb->LossTimes > Tcb->MaxRexmit &&\r
!TCP_TIMER_ON (Tcb->EnabledTimer, TCP_TIMER_CONNECT)) {\r
\r
- TCP4_DEBUG_ERROR (("TcpRexmitTimeout: connection closed "\r
- "because too many timeouts for TCB %x\n", Tcb));\r
+ DEBUG ((EFI_D_ERROR, "TcpRexmitTimeout: connection closed "\r
+ "because too many timeouts for TCB %p\n", Tcb));\r
\r
if (EFI_ABORTED == Tcb->Sk->SockError) {\r
SOCK_ERROR (Tcb->Sk, EFI_TIMEOUT);\r
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
TcpProbeTimeout (\r
IN TCP_CB *Tcb\r
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
TcpKeepaliveTimeout (\r
IN TCP_CB *Tcb\r
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
TcpFinwait2Timeout (\r
IN TCP_CB *Tcb\r
)\r
{\r
- TCP4_DEBUG_WARN (("TcpFinwait2Timeout: connection closed "\r
- "because FIN_WAIT2 timer timeouts for TCB %x\n", Tcb));\r
+ DEBUG ((EFI_D_WARN, "TcpFinwait2Timeout: connection closed "\r
+ "because FIN_WAIT2 timer timeouts for TCB %p\n", Tcb));\r
\r
TcpClose (Tcb);\r
}\r
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
Tcp2MSLTimeout (\r
IN TCP_CB *Tcb\r
)\r
{\r
- TCP4_DEBUG_WARN (("Tcp2MSLTimeout: connection closed "\r
- "because TIME_WAIT timer timeouts for TCB %x\n", Tcb));\r
+ DEBUG ((EFI_D_WARN, "Tcp2MSLTimeout: connection closed "\r
+ "because TIME_WAIT timer timeouts for TCB %p\n", Tcb));\r
\r
TcpClose (Tcb);\r
}\r
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
TcpUpdateTimer (\r
IN TCP_CB *Tcb\r
/**\r
Heart beat timer handler.\r
\r
- @param Event Timer event signaled, ignored.\r
@param Context Context of the timer event, ignored.\r
\r
@return None.\r
**/\r
VOID\r
EFIAPI\r
-TcpTicking (\r
- IN EFI_EVENT Event,\r
+TcpTickingDpc (\r
IN VOID *Context\r
)\r
{\r
- NET_LIST_ENTRY *Entry;\r
- NET_LIST_ENTRY *Next;\r
+ LIST_ENTRY *Entry;\r
+ LIST_ENTRY *Next;\r
TCP_CB *Tcb;\r
INT16 Index;\r
\r
;\r
}\r
}\r
+\r
+/**\r
+ Heart beat timer handler, queues the DPC at TPL_CALLBACK.\r
+\r
+ @param Event Timer event signaled, ignored.\r
+ @param Context Context of the timer event, ignored.\r
+\r
+ @return None.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+TcpTicking (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ )\r
+{\r
+ NetLibQueueDpc (TPL_CALLBACK, TcpTickingDpc, Context);\r
+}\r
+\r