}\r
\r
if (Mode->Tcp4State) {\r
- *(Mode->Tcp4State) = Tcb->State;\r
+ *(Mode->Tcp4State) = (EFI_TCP4_CONNECTION_STATE) Tcb->State;\r
}\r
\r
if (Mode->Tcp4ConfigData) {\r
\r
AccessPoint->UseDefaultAddress = Tcb->UseDefaultAddr;\r
\r
- EFI_IP4 (AccessPoint->StationAddress) = Tcb->LocalEnd.Ip;\r
+ NetCopyMem (&AccessPoint->StationAddress, &Tcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS));\r
AccessPoint->SubnetMask = Tcb->SubnetMask;\r
AccessPoint->StationPort = NTOHS (Tcb->LocalEnd.Port);\r
\r
- EFI_IP4 (AccessPoint->RemoteAddress) = Tcb->RemoteEnd.Ip;\r
+ NetCopyMem (&AccessPoint->RemoteAddress, &Tcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS));\r
AccessPoint->RemotePort = NTOHS (Tcb->RemoteEnd.Port);\r
AccessPoint->ActiveFlag = (BOOLEAN) (Tcb->State != TCP_LISTEN);\r
\r
Option->KeepAliveTime = Tcb->KeepAliveIdle / TCP_TICK_HZ;\r
Option->KeepAliveInterval = Tcb->KeepAlivePeriod / TCP_TICK_HZ;\r
\r
- Option->EnableNagle = !TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_NAGLE);\r
- Option->EnableTimeStamp = !TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_TS);\r
- Option->EnableWindowScaling = !TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_WS);\r
+ Option->EnableNagle = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_NAGLE));\r
+ Option->EnableTimeStamp = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_TS));\r
+ Option->EnableWindowScaling = (BOOLEAN) (!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_NO_WS))\r
+;\r
\r
Option->EnableSelectiveAck = FALSE;\r
Option->EnablePathMtuDiscovery = FALSE;\r
IN EFI_TCP4_CONFIG_DATA *CfgData\r
)\r
{\r
- IP_IO *IpIo;\r
EFI_IP4_CONFIG_DATA IpCfgData;\r
EFI_STATUS Status;\r
EFI_TCP4_OPTION *Option;\r
\r
TcpProto = (TCP4_PROTO_DATA *) Sk->ProtoReserved;\r
Tcb = TcpProto->TcpPcb;\r
- IpIo = TcpProto->TcpService->IpIo;\r
\r
ASSERT (Tcb != NULL);\r
\r
//\r
// Add Ip for send pkt to the peer\r
//\r
- IpCfgData = mIpIoDefaultIpConfigData;\r
+ CopyMem (&IpCfgData, &mIpIoDefaultIpConfigData, sizeof (IpCfgData));\r
IpCfgData.DefaultProtocol = EFI_IP_PROTO_TCP;\r
IpCfgData.UseDefaultAddress = CfgData->AccessPoint.UseDefaultAddress;\r
IpCfgData.StationAddress = CfgData->AccessPoint.StationAddress;\r
Tcb->TTL = CfgData->TimeToLive;\r
Tcb->TOS = CfgData->TypeOfService;\r
\r
- Tcb->LocalEnd.Ip = EFI_IP4 (CfgData->AccessPoint.StationAddress);\r
+ NetCopyMem (&Tcb->LocalEnd.Ip, &CfgData->AccessPoint.StationAddress, sizeof (IP4_ADDR));\r
Tcb->LocalEnd.Port = HTONS (CfgData->AccessPoint.StationPort);\r
Tcb->SubnetMask = CfgData->AccessPoint.SubnetMask;\r
\r
- Tcb->RemoteEnd.Ip = EFI_IP4 (CfgData->AccessPoint.RemoteAddress);\r
+ NetCopyMem (&Tcb->RemoteEnd.Ip, &CfgData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR));\r
Tcb->RemoteEnd.Port = HTONS (CfgData->AccessPoint.RemotePort);\r
\r
Option = CfgData->ControlOption;\r
if (Option != NULL) {\r
SET_RCV_BUFFSIZE (\r
Sk,\r
- TCP_COMP_VAL (TCP_RCV_BUF_SIZE_MIN,\r
- TCP_RCV_BUF_SIZE,\r
- TCP_RCV_BUF_SIZE,\r
- Option->ReceiveBufferSize)\r
+ (UINT32) (TCP_COMP_VAL (\r
+ TCP_RCV_BUF_SIZE_MIN,\r
+ TCP_RCV_BUF_SIZE,\r
+ TCP_RCV_BUF_SIZE,\r
+ Option->ReceiveBufferSize\r
+ )\r
+ )\r
);\r
SET_SND_BUFFSIZE (\r
Sk,\r
- TCP_COMP_VAL (TCP_SND_BUF_SIZE_MIN,\r
- TCP_SND_BUF_SIZE,\r
- TCP_SND_BUF_SIZE,\r
- Option->SendBufferSize)\r
+ (UINT32) (TCP_COMP_VAL (\r
+ TCP_SND_BUF_SIZE_MIN,\r
+ TCP_SND_BUF_SIZE,\r
+ TCP_SND_BUF_SIZE,\r
+ Option->SendBufferSize\r
+ )\r
+ )\r
);\r
\r
SET_BACKLOG (\r
Sk,\r
- TCP_COMP_VAL (TCP_BACKLOG_MIN,\r
- TCP_BACKLOG,\r
- TCP_BACKLOG,\r
- Option->MaxSynBackLog)\r
+ (UINT32) (TCP_COMP_VAL (\r
+ TCP_BACKLOG_MIN,\r
+ TCP_BACKLOG,\r
+ TCP_BACKLOG,\r
+ Option->MaxSynBackLog\r
+ )\r
+ )\r
);\r
\r
Tcb->MaxRexmit = (UINT16) TCP_COMP_VAL (\r
TCP_FIN_WAIT2_TIME,\r
TCP_FIN_WAIT2_TIME_MAX,\r
TCP_FIN_WAIT2_TIME,\r
- Option->FinTimeout * TCP_TICK_HZ\r
+ (UINT32) (Option->FinTimeout * TCP_TICK_HZ)\r
);\r
\r
if (Option->TimeWaitTimeout != 0) {\r
TCP_TIME_WAIT_TIME,\r
TCP_TIME_WAIT_TIME_MAX,\r
TCP_TIME_WAIT_TIME,\r
- Option->TimeWaitTimeout * TCP_TICK_HZ\r
+ (UINT32) (Option->TimeWaitTimeout * TCP_TICK_HZ)\r
);\r
} else {\r
Tcb->TimeWaitTimeout = 0;\r
TCP_KEEPALIVE_IDLE_MIN,\r
TCP_KEEPALIVE_IDLE_MAX,\r
TCP_KEEPALIVE_IDLE_MIN,\r
- Option->KeepAliveTime * TCP_TICK_HZ\r
+ (UINT32) (Option->KeepAliveTime * TCP_TICK_HZ)\r
);\r
Tcb->KeepAlivePeriod = TCP_COMP_VAL (\r
TCP_KEEPALIVE_PERIOD_MIN,\r
TCP_KEEPALIVE_PERIOD,\r
TCP_KEEPALIVE_PERIOD,\r
- Option->KeepAliveInterval * TCP_TICK_HZ\r
+ (UINT32) (Option->KeepAliveInterval * TCP_TICK_HZ)\r
);\r
}\r
\r
TCP_CONNECT_TIME_MIN,\r
TCP_CONNECT_TIME,\r
TCP_CONNECT_TIME,\r
- Option->ConnectionTimeout * TCP_TICK_HZ\r
+ (UINT32) (Option->ConnectionTimeout * TCP_TICK_HZ)\r
);\r
\r
if (Option->EnableNagle == FALSE) {\r
\r
return Tcp4Route (Tcb, (TCP4_ROUTE_INFO *) Data);\r
\r
+ default:\r
+ return EFI_UNSUPPORTED;\r
}\r
\r
return EFI_SUCCESS;\r