**/\r
VOID\r
TcpConnectTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
);\r
\r
/**\r
**/\r
VOID\r
TcpRexmitTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
);\r
\r
/**\r
**/\r
VOID\r
TcpProbeTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
);\r
\r
/**\r
**/\r
VOID\r
TcpKeepaliveTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
);\r
\r
/**\r
**/\r
VOID\r
TcpFinwait2Timeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
);\r
\r
/**\r
**/\r
VOID\r
Tcp2MSLTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
);\r
\r
TCP_TIMER_HANDLER mTcpTimerHandler[TCP_TIMER_NUMBER] = {\r
**/\r
VOID\r
TcpClose (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
NetbufFreeList (&Tcb->SndQue);\r
**/\r
VOID\r
TcpConnectTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
if (!TCP_CONNECTED (Tcb->State)) {\r
**/\r
VOID\r
TcpRexmitTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
UINT32 FlightSize;\r
**/\r
VOID\r
TcpProbeTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
//\r
**/\r
VOID\r
TcpKeepaliveTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
Tcb->KeepAliveProbes++;\r
**/\r
VOID\r
TcpFinwait2Timeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
DEBUG ((EFI_D_WARN, "TcpFinwait2Timeout: connection closed "\r
**/\r
VOID\r
Tcp2MSLTimeout (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
DEBUG ((EFI_D_WARN, "Tcp2MSLTimeout: connection closed "\r
**/\r
VOID\r
TcpUpdateTimer (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
UINT16 Index;\r
**/\r
VOID\r
TcpSetTimer (\r
- IN TCP_CB *Tcb,\r
- IN UINT16 Timer,\r
- IN UINT32 TimeOut\r
+ IN OUT TCP_CB *Tcb,\r
+ IN UINT16 Timer,\r
+ IN UINT32 TimeOut\r
)\r
{\r
TCP_SET_TIMER (Tcb->EnabledTimer, Timer);\r
**/\r
VOID\r
TcpClearTimer (\r
- IN TCP_CB *Tcb,\r
- IN UINT16 Timer\r
+ IN OUT TCP_CB *Tcb,\r
+ IN UINT16 Timer\r
)\r
{\r
TCP_CLEAR_TIMER (Tcb->EnabledTimer, Timer);\r
**/\r
VOID\r
TcpClearAllTimer (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
Tcb->EnabledTimer = 0;\r
**/\r
VOID\r
TcpSetProbeTimer (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
if (!TCP_TIMER_ON (Tcb->EnabledTimer, TCP_TIMER_PROBE)) {\r
**/\r
VOID\r
TcpSetKeepaliveTimer (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
if (TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_KEEPALIVE)) {\r
**/\r
VOID\r
TcpBackoffRto (\r
- IN TCP_CB *Tcb\r
+ IN OUT TCP_CB *Tcb\r
)\r
{\r
//\r
//\r
if ((Next->BackLink != Entry) ||\r
(Tcb->EnabledTimer == 0)) {\r
-\r
- goto NextConnection;\r
+ break;\r
}\r
}\r
}\r
-\r
- TcpUpdateTimer (Tcb);\r
-NextConnection:\r
- ;\r
+ \r
+ //\r
+ // If the Tcb still exist or some timer is set, update the timer\r
+ //\r
+ if (Index == TCP_TIMER_NUMBER) {\r
+ TcpUpdateTimer (Tcb);\r
+ }\r
}\r
}\r
\r
IN VOID *Context\r
)\r
{\r
- NetLibQueueDpc (TPL_CALLBACK, TcpTickingDpc, Context);\r
+ QueueDpc (TPL_CALLBACK, TcpTickingDpc, Context);\r
}\r
\r