case ICMP_CODE_UNREACH_PROTOCOL:\r
case ICMP_CODE_UNREACH_PORT:\r
case ICMP_CODE_UNREACH_SRCFAIL:\r
- IcmpErr = ICMP_ERR_UNREACH_NET + Code;\r
+ IcmpErr = (ICMP_ERROR) (ICMP_ERR_UNREACH_NET + Code);\r
\r
break;\r
\r
return EFI_ABORTED;\r
}\r
\r
- IcmpErr = Code + ICMP_ERR_TIMXCEED_INTRANS;\r
+ IcmpErr = (ICMP_ERROR) (Code + ICMP_ERR_TIMXCEED_INTRANS);\r
\r
break;\r
\r
EFI_IP4_TRANSMIT_DATA *TxData;\r
EFI_STATUS Status;\r
EFI_IP4_OVERRIDE_DATA *OverrideData;\r
- UINT32 Index;\r
+ volatile UINT32 Index;\r
\r
//\r
// Allocate resource for SndEntry\r
TxData->TotalDataLength = Pkt->TotalSize;\r
TxData->FragmentCount = Pkt->BlockOpNum;\r
\r
- for (Index = 0; Index < Pkt->BlockOpNum; Index++) {\r
\r
+ for (Index = 0; Index < Pkt->BlockOpNum; Index++) {\r
TxData->FragmentTable[Index].FragmentBuffer = Pkt->BlockOp[Index].Head;\r
TxData->FragmentTable[Index].FragmentLength = Pkt->BlockOp[Index].Size;\r
}\r
\r
if (EFI_SUCCESS == Status) {\r
\r
- IpIo->PktRcvdNotify (EFI_SUCCESS, 0, &Session, Pkt, IpIo->RcvdContext);\r
+ IpIo->PktRcvdNotify (EFI_SUCCESS, (ICMP_ERROR) 0, &Session, Pkt, IpIo->RcvdContext);\r
} else {\r
//\r
// Status is EFI_ICMP_ERROR\r
//\r
// Detroy the Ip List used by IpIo\r
//\r
+\r
while (!NetListIsEmpty (&(IpIo->IpList))) {\r
IpInfo = NET_LIST_HEAD (&(IpIo->IpList), IP_IO_IP_INFO, Entry);\r
\r
IpIo->Controller,\r
IpIo->Image,\r
&IpInfo->ChildHandle,\r
- &IpInfo->Ip\r
+ (VOID **) &IpInfo->Ip\r
);\r
if (EFI_ERROR (Status)) {\r
goto ReleaseIpInfo;\r