#include <Library/MemoryAllocationLib.h>\r
#include <Library/DpcLib.h>\r
\r
-\r
GLOBAL_REMOVE_IF_UNREFERENCED LIST_ENTRY mActiveIpIoList = {\r
&mActiveIpIoList,\r
&mActiveIpIoList\r
FALSE,\r
FALSE,\r
FALSE,\r
- {{0, 0, 0, 0}},\r
- {{0, 0, 0, 0}},\r
+ {\r
+ { 0, 0, 0, 0 }\r
+ },\r
+ {\r
+ { 0, 0, 0, 0 }\r
+ },\r
0,\r
255,\r
FALSE,\r
FALSE,\r
TRUE,\r
FALSE,\r
- {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},\r
- {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},\r
+ {\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }\r
+ },\r
+ {\r
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }\r
+ },\r
0,\r
255,\r
0,\r
};\r
\r
GLOBAL_REMOVE_IF_UNREFERENCED ICMP_ERROR_INFO mIcmpErrMap[10] = {\r
- {FALSE, TRUE }, // ICMP_ERR_UNREACH_NET\r
- {FALSE, TRUE }, // ICMP_ERR_UNREACH_HOST\r
- {TRUE, TRUE }, // ICMP_ERR_UNREACH_PROTOCOL\r
- {TRUE, TRUE }, // ICMP_ERR_UNREACH_PORT\r
- {TRUE, TRUE }, // ICMP_ERR_MSGSIZE\r
- {FALSE, TRUE }, // ICMP_ERR_UNREACH_SRCFAIL\r
- {FALSE, TRUE }, // ICMP_ERR_TIMXCEED_INTRANS\r
- {FALSE, TRUE }, // ICMP_ERR_TIMEXCEED_REASS\r
- {FALSE, FALSE}, // ICMP_ERR_QUENCH\r
- {FALSE, TRUE } // ICMP_ERR_PARAMPROB\r
+ { FALSE, TRUE }, // ICMP_ERR_UNREACH_NET\r
+ { FALSE, TRUE }, // ICMP_ERR_UNREACH_HOST\r
+ { TRUE, TRUE }, // ICMP_ERR_UNREACH_PROTOCOL\r
+ { TRUE, TRUE }, // ICMP_ERR_UNREACH_PORT\r
+ { TRUE, TRUE }, // ICMP_ERR_MSGSIZE\r
+ { FALSE, TRUE }, // ICMP_ERR_UNREACH_SRCFAIL\r
+ { FALSE, TRUE }, // ICMP_ERR_TIMXCEED_INTRANS\r
+ { FALSE, TRUE }, // ICMP_ERR_TIMEXCEED_REASS\r
+ { FALSE, FALSE }, // ICMP_ERR_QUENCH\r
+ { FALSE, TRUE } // ICMP_ERR_PARAMPROB\r
};\r
\r
GLOBAL_REMOVE_IF_UNREFERENCED ICMP_ERROR_INFO mIcmp6ErrMap[10] = {\r
- {FALSE, TRUE}, // ICMP6_ERR_UNREACH_NET\r
- {FALSE, TRUE}, // ICMP6_ERR_UNREACH_HOST\r
- {TRUE, TRUE}, // ICMP6_ERR_UNREACH_PROTOCOL\r
- {TRUE, TRUE}, // ICMP6_ERR_UNREACH_PORT\r
- {TRUE, TRUE}, // ICMP6_ERR_PACKAGE_TOOBIG\r
- {FALSE, TRUE}, // ICMP6_ERR_TIMXCEED_HOPLIMIT\r
- {FALSE, TRUE}, // ICMP6_ERR_TIMXCEED_REASS\r
- {FALSE, TRUE}, // ICMP6_ERR_PARAMPROB_HEADER\r
- {FALSE, TRUE}, // ICMP6_ERR_PARAMPROB_NEXHEADER\r
- {FALSE, TRUE} // ICMP6_ERR_PARAMPROB_IPV6OPTION\r
+ { FALSE, TRUE }, // ICMP6_ERR_UNREACH_NET\r
+ { FALSE, TRUE }, // ICMP6_ERR_UNREACH_HOST\r
+ { TRUE, TRUE }, // ICMP6_ERR_UNREACH_PROTOCOL\r
+ { TRUE, TRUE }, // ICMP6_ERR_UNREACH_PORT\r
+ { TRUE, TRUE }, // ICMP6_ERR_PACKAGE_TOOBIG\r
+ { FALSE, TRUE }, // ICMP6_ERR_TIMXCEED_HOPLIMIT\r
+ { FALSE, TRUE }, // ICMP6_ERR_TIMXCEED_REASS\r
+ { FALSE, TRUE }, // ICMP6_ERR_PARAMPROB_HEADER\r
+ { FALSE, TRUE }, // ICMP6_ERR_PARAMPROB_NEXHEADER\r
+ { FALSE, TRUE } // ICMP6_ERR_PARAMPROB_IPV6OPTION\r
};\r
\r
-\r
/**\r
Notify function for IP transmit token.\r
\r
VOID\r
EFIAPI\r
IpIoTransmitHandlerDpc (\r
- IN VOID *Context\r
+ IN VOID *Context\r
);\r
\r
-\r
/**\r
Notify function for IP transmit token.\r
\r
VOID\r
EFIAPI\r
IpIoTransmitHandler (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
);\r
\r
-\r
/**\r
This function create an IP child ,open the IP protocol, and return the opened\r
IP protocol as Interface.\r
\r
@retval EFI_SUCCESS The IP child is created and the IP protocol\r
interface is retrieved.\r
- @retval EFI_UNSUPPORTED Upsupported IpVersion.\r
+ @retval EFI_UNSUPPORTED Unsupported IpVersion.\r
@retval Others The required operation failed.\r
\r
**/\r
if (IpVersion == IP_VERSION_4) {\r
ServiceBindingGuid = &gEfiIp4ServiceBindingProtocolGuid;\r
IpProtocolGuid = &gEfiIp4ProtocolGuid;\r
- } else if (IpVersion == IP_VERSION_6){\r
+ } else if (IpVersion == IP_VERSION_6) {\r
ServiceBindingGuid = &gEfiIp6ServiceBindingProtocolGuid;\r
IpProtocolGuid = &gEfiIp6ProtocolGuid;\r
} else {\r
return Status;\r
}\r
\r
-\r
/**\r
- This function close the previously openned IP protocol and destroy the IP child.\r
+ This function close the previously opened IP protocol and destroy the IP child.\r
\r
@param[in] ControllerHandle The controller handle.\r
@param[in] ImageHandle The image handle.\r
\r
@retval EFI_SUCCESS The IP protocol is closed and the relevant IP child\r
is destroyed.\r
- @retval EFI_UNSUPPORTED Upsupported IpVersion.\r
+ @retval EFI_UNSUPPORTED Unsupported IpVersion.\r
@retval Others The required operation failed.\r
\r
**/\r
}\r
\r
//\r
- // Close the previously openned IP protocol.\r
+ // Close the previously opened IP protocol.\r
//\r
Status = gBS->CloseProtocol (\r
ChildHandle,\r
**/\r
EFI_STATUS\r
IpIoIcmpv4Handler (\r
- IN IP_IO *IpIo,\r
- IN OUT NET_BUF *Pkt,\r
- IN EFI_NET_SESSION_DATA *Session\r
+ IN IP_IO *IpIo,\r
+ IN OUT NET_BUF *Pkt,\r
+ IN EFI_NET_SESSION_DATA *Session\r
)\r
{\r
IP4_ICMP_ERROR_HEAD *IcmpHdr;\r
}\r
\r
IcmpHdr = NET_PROTO_HDR (Pkt, IP4_ICMP_ERROR_HEAD);\r
- IpHdr = (EFI_IP4_HEADER *) (&IcmpHdr->IpHead);\r
+ IpHdr = (EFI_IP4_HEADER *)(&IcmpHdr->IpHead);\r
\r
if (Pkt->TotalSize < ICMP_ERRLEN (IpHdr)) {\r
-\r
return EFI_ABORTED;\r
}\r
\r
// Analyze the ICMP Error in this ICMP pkt\r
//\r
switch (Type) {\r
- case ICMP_TYPE_UNREACH:\r
- switch (Code) {\r
- case ICMP_CODE_UNREACH_NET:\r
- case ICMP_CODE_UNREACH_HOST:\r
- case ICMP_CODE_UNREACH_PROTOCOL:\r
- case ICMP_CODE_UNREACH_PORT:\r
- case ICMP_CODE_UNREACH_SRCFAIL:\r
- IcmpErr = (UINT8) (ICMP_ERR_UNREACH_NET + Code);\r
+ case ICMP_TYPE_UNREACH:\r
+ switch (Code) {\r
+ case ICMP_CODE_UNREACH_NET:\r
+ case ICMP_CODE_UNREACH_HOST:\r
+ case ICMP_CODE_UNREACH_PROTOCOL:\r
+ case ICMP_CODE_UNREACH_PORT:\r
+ case ICMP_CODE_UNREACH_SRCFAIL:\r
+ IcmpErr = (UINT8)(ICMP_ERR_UNREACH_NET + Code);\r
\r
- break;\r
+ break;\r
\r
- case ICMP_CODE_UNREACH_NEEDFRAG:\r
- IcmpErr = ICMP_ERR_MSGSIZE;\r
+ case ICMP_CODE_UNREACH_NEEDFRAG:\r
+ IcmpErr = ICMP_ERR_MSGSIZE;\r
\r
- break;\r
+ break;\r
\r
- case ICMP_CODE_UNREACH_NET_UNKNOWN:\r
- case ICMP_CODE_UNREACH_NET_PROHIB:\r
- case ICMP_CODE_UNREACH_TOSNET:\r
- IcmpErr = ICMP_ERR_UNREACH_NET;\r
+ case ICMP_CODE_UNREACH_NET_UNKNOWN:\r
+ case ICMP_CODE_UNREACH_NET_PROHIB:\r
+ case ICMP_CODE_UNREACH_TOSNET:\r
+ IcmpErr = ICMP_ERR_UNREACH_NET;\r
\r
- break;\r
+ break;\r
\r
- case ICMP_CODE_UNREACH_HOST_UNKNOWN:\r
- case ICMP_CODE_UNREACH_ISOLATED:\r
- case ICMP_CODE_UNREACH_HOST_PROHIB:\r
- case ICMP_CODE_UNREACH_TOSHOST:\r
- IcmpErr = ICMP_ERR_UNREACH_HOST;\r
+ case ICMP_CODE_UNREACH_HOST_UNKNOWN:\r
+ case ICMP_CODE_UNREACH_ISOLATED:\r
+ case ICMP_CODE_UNREACH_HOST_PROHIB:\r
+ case ICMP_CODE_UNREACH_TOSHOST:\r
+ IcmpErr = ICMP_ERR_UNREACH_HOST;\r
\r
- break;\r
+ break;\r
\r
- default:\r
- return EFI_ABORTED;\r
- }\r
+ default:\r
+ return EFI_ABORTED;\r
+ }\r
\r
- break;\r
+ break;\r
\r
- case ICMP_TYPE_TIMXCEED:\r
- if (Code > 1) {\r
- return EFI_ABORTED;\r
- }\r
+ case ICMP_TYPE_TIMXCEED:\r
+ if (Code > 1) {\r
+ return EFI_ABORTED;\r
+ }\r
\r
- IcmpErr = (UINT8) (Code + ICMP_ERR_TIMXCEED_INTRANS);\r
+ IcmpErr = (UINT8)(Code + ICMP_ERR_TIMXCEED_INTRANS);\r
\r
- break;\r
+ break;\r
\r
- case ICMP_TYPE_PARAMPROB:\r
- if (Code > 1) {\r
- return EFI_ABORTED;\r
- }\r
+ case ICMP_TYPE_PARAMPROB:\r
+ if (Code > 1) {\r
+ return EFI_ABORTED;\r
+ }\r
\r
- IcmpErr = ICMP_ERR_PARAMPROB;\r
+ IcmpErr = ICMP_ERR_PARAMPROB;\r
\r
- break;\r
+ break;\r
\r
- case ICMP_TYPE_SOURCEQUENCH:\r
- if (Code != 0) {\r
- return EFI_ABORTED;\r
- }\r
+ case ICMP_TYPE_SOURCEQUENCH:\r
+ if (Code != 0) {\r
+ return EFI_ABORTED;\r
+ }\r
\r
- IcmpErr = ICMP_ERR_QUENCH;\r
+ IcmpErr = ICMP_ERR_QUENCH;\r
\r
- break;\r
+ break;\r
\r
- default:\r
- return EFI_ABORTED;\r
+ default:\r
+ return EFI_ABORTED;\r
}\r
\r
//\r
// Notify user the ICMP pkt only containing payload except\r
// IP and ICMP header\r
//\r
- PayLoadHdr = (UINT8 *) ((UINT8 *) IpHdr + EFI_IP4_HEADER_LEN (IpHdr));\r
- TrimBytes = (UINT32) (PayLoadHdr - (UINT8 *) IcmpHdr);\r
+ PayLoadHdr = (UINT8 *)((UINT8 *)IpHdr + EFI_IP4_HEADER_LEN (IpHdr));\r
+ TrimBytes = (UINT32)(PayLoadHdr - (UINT8 *)IcmpHdr);\r
\r
NetbufTrim (Pkt, TrimBytes, TRUE);\r
\r
**/\r
EFI_STATUS\r
IpIoIcmpv6Handler (\r
- IN IP_IO *IpIo,\r
- IN OUT NET_BUF *Pkt,\r
- IN EFI_NET_SESSION_DATA *Session\r
+ IN IP_IO *IpIo,\r
+ IN OUT NET_BUF *Pkt,\r
+ IN EFI_NET_SESSION_DATA *Session\r
)\r
{\r
IP6_ICMP_ERROR_HEAD *IcmpHdr;\r
// Check the ICMPv6 packet length.\r
//\r
if (Pkt->TotalSize < sizeof (IP6_ICMP_ERROR_HEAD)) {\r
-\r
return EFI_ABORTED;\r
}\r
\r
// Analyze the ICMPv6 Error in this ICMPv6 packet\r
//\r
switch (Type) {\r
- case ICMP_V6_DEST_UNREACHABLE:\r
- switch (Code) {\r
- case ICMP_V6_NO_ROUTE_TO_DEST:\r
- case ICMP_V6_BEYOND_SCOPE:\r
- case ICMP_V6_ROUTE_REJECTED:\r
- IcmpErr = ICMP6_ERR_UNREACH_NET;\r
+ case ICMP_V6_DEST_UNREACHABLE:\r
+ switch (Code) {\r
+ case ICMP_V6_NO_ROUTE_TO_DEST:\r
+ case ICMP_V6_BEYOND_SCOPE:\r
+ case ICMP_V6_ROUTE_REJECTED:\r
+ IcmpErr = ICMP6_ERR_UNREACH_NET;\r
\r
- break;\r
+ break;\r
\r
- case ICMP_V6_COMM_PROHIBITED:\r
- case ICMP_V6_ADDR_UNREACHABLE:\r
- case ICMP_V6_SOURCE_ADDR_FAILED:\r
- IcmpErr = ICMP6_ERR_UNREACH_HOST;\r
+ case ICMP_V6_COMM_PROHIBITED:\r
+ case ICMP_V6_ADDR_UNREACHABLE:\r
+ case ICMP_V6_SOURCE_ADDR_FAILED:\r
+ IcmpErr = ICMP6_ERR_UNREACH_HOST;\r
\r
- break;\r
+ break;\r
\r
- case ICMP_V6_PORT_UNREACHABLE:\r
- IcmpErr = ICMP6_ERR_UNREACH_PORT;\r
+ case ICMP_V6_PORT_UNREACHABLE:\r
+ IcmpErr = ICMP6_ERR_UNREACH_PORT;\r
\r
- break;\r
+ break;\r
\r
- default:\r
- return EFI_ABORTED;\r
- }\r
+ default:\r
+ return EFI_ABORTED;\r
+ }\r
\r
- break;\r
+ break;\r
\r
- case ICMP_V6_PACKET_TOO_BIG:\r
- if (Code >= 1) {\r
- return EFI_ABORTED;\r
- }\r
+ case ICMP_V6_PACKET_TOO_BIG:\r
+ if (Code >= 1) {\r
+ return EFI_ABORTED;\r
+ }\r
\r
- IcmpErr = ICMP6_ERR_PACKAGE_TOOBIG;\r
+ IcmpErr = ICMP6_ERR_PACKAGE_TOOBIG;\r
\r
- break;\r
+ break;\r
\r
- case ICMP_V6_TIME_EXCEEDED:\r
- if (Code > 1) {\r
- return EFI_ABORTED;\r
- }\r
+ case ICMP_V6_TIME_EXCEEDED:\r
+ if (Code > 1) {\r
+ return EFI_ABORTED;\r
+ }\r
\r
- IcmpErr = (UINT8) (ICMP6_ERR_TIMXCEED_HOPLIMIT + Code);\r
+ IcmpErr = (UINT8)(ICMP6_ERR_TIMXCEED_HOPLIMIT + Code);\r
\r
- break;\r
+ break;\r
\r
- case ICMP_V6_PARAMETER_PROBLEM:\r
- if (Code > 3) {\r
- return EFI_ABORTED;\r
- }\r
+ case ICMP_V6_PARAMETER_PROBLEM:\r
+ if (Code > 3) {\r
+ return EFI_ABORTED;\r
+ }\r
\r
- IcmpErr = (UINT8) (ICMP6_ERR_PARAMPROB_HEADER + Code);\r
+ IcmpErr = (UINT8)(ICMP6_ERR_PARAMPROB_HEADER + Code);\r
\r
- break;\r
+ break;\r
\r
- default:\r
+ default:\r
\r
- return EFI_ABORTED;\r
- }\r
+ return EFI_ABORTED;\r
+ }\r
\r
//\r
// Notify user the ICMPv6 packet only containing payload except\r
// IPv6 basic header, extension header and ICMP header\r
//\r
\r
- IpHdr = (EFI_IP6_HEADER *) (&IcmpHdr->IpHead);\r
+ IpHdr = (EFI_IP6_HEADER *)(&IcmpHdr->IpHead);\r
NextHeader = IpHdr->NextHeader;\r
- PayLoadHdr = (UINT8 *) ((UINT8 *) IcmpHdr + sizeof (IP6_ICMP_ERROR_HEAD));\r
+ PayLoadHdr = (UINT8 *)((UINT8 *)IcmpHdr + sizeof (IP6_ICMP_ERROR_HEAD));\r
Flag = TRUE;\r
\r
do {\r
switch (NextHeader) {\r
- case EFI_IP_PROTO_UDP:\r
- case EFI_IP_PROTO_TCP:\r
- case EFI_IP_PROTO_ICMP:\r
- case IP6_NO_NEXT_HEADER:\r
- Flag = FALSE;\r
+ case EFI_IP_PROTO_UDP:\r
+ case EFI_IP_PROTO_TCP:\r
+ case EFI_IP_PROTO_ICMP:\r
+ case IP6_NO_NEXT_HEADER:\r
+ Flag = FALSE;\r
\r
- break;\r
+ break;\r
\r
- case IP6_HOP_BY_HOP:\r
- case IP6_DESTINATION:\r
- //\r
- // The Hdr Ext Len is 8-bit unsigned integer in 8-octet units, not including\r
- // the first 8 octets.\r
- //\r
- NextHeader = *(PayLoadHdr);\r
- PayLoadHdr = (UINT8 *) (PayLoadHdr + (*(PayLoadHdr + 1) + 1) * 8);\r
+ case IP6_HOP_BY_HOP:\r
+ case IP6_DESTINATION:\r
+ //\r
+ // The Hdr Ext Len is 8-bit unsigned integer in 8-octet units, not including\r
+ // the first 8 octets.\r
+ //\r
+ NextHeader = *(PayLoadHdr);\r
+ PayLoadHdr = (UINT8 *)(PayLoadHdr + (*(PayLoadHdr + 1) + 1) * 8);\r
\r
- break;\r
+ break;\r
\r
- case IP6_FRAGMENT:\r
- //\r
- // The Fragment Header Length is 8 octets.\r
- //\r
- NextHeader = *(PayLoadHdr);\r
- PayLoadHdr = (UINT8 *) (PayLoadHdr + 8);\r
+ case IP6_FRAGMENT:\r
+ //\r
+ // The Fragment Header Length is 8 octets.\r
+ //\r
+ NextHeader = *(PayLoadHdr);\r
+ PayLoadHdr = (UINT8 *)(PayLoadHdr + 8);\r
\r
- break;\r
+ break;\r
\r
- default:\r
+ default:\r
\r
- return EFI_ABORTED;\r
+ return EFI_ABORTED;\r
}\r
} while (Flag);\r
\r
- TrimBytes = (UINT32) (PayLoadHdr - (UINT8 *) IcmpHdr);\r
+ TrimBytes = (UINT32)(PayLoadHdr - (UINT8 *)IcmpHdr);\r
\r
NetbufTrim (Pkt, TrimBytes, TRUE);\r
\r
**/\r
EFI_STATUS\r
IpIoIcmpHandler (\r
- IN IP_IO *IpIo,\r
- IN OUT NET_BUF *Pkt,\r
- IN EFI_NET_SESSION_DATA *Session\r
+ IN IP_IO *IpIo,\r
+ IN OUT NET_BUF *Pkt,\r
+ IN EFI_NET_SESSION_DATA *Session\r
)\r
{\r
-\r
if (IpIo->IpVersion == IP_VERSION_4) {\r
-\r
return IpIoIcmpv4Handler (IpIo, Pkt, Session);\r
-\r
} else if (IpIo->IpVersion == IP_VERSION_6) {\r
-\r
return IpIoIcmpv6Handler (IpIo, Pkt, Session);\r
-\r
} else {\r
-\r
return EFI_UNSUPPORTED;\r
}\r
}\r
\r
-\r
/**\r
Free function for receive token of IP_IO. It is used to\r
signal the recycle event to notify IP to recycle the\r
IN VOID *Event\r
)\r
{\r
- gBS->SignalEvent ((EFI_EVENT) Event);\r
+ gBS->SignalEvent ((EFI_EVENT)Event);\r
}\r
\r
-\r
/**\r
Create a send entry to wrap a packet before sending\r
out it through IP.\r
@param[in] Context Pointer to the context.\r
@param[in] NotifyData Pointer to the notify data.\r
@param[in] Dest Pointer to the destination IP address.\r
- @param[in] Override Pointer to the overriden IP_IO data.\r
+ @param[in] Override Pointer to the overridden IP_IO data.\r
\r
@return Pointer to the data structure created to wrap the packet. If any error occurs,\r
then return NULL.\r
**/\r
IP_IO_SEND_ENTRY *\r
IpIoCreateSndEntry (\r
- IN OUT IP_IO *IpIo,\r
- IN OUT NET_BUF *Pkt,\r
- IN IP_IO_IP_PROTOCOL Sender,\r
- IN VOID *Context OPTIONAL,\r
- IN VOID *NotifyData OPTIONAL,\r
- IN EFI_IP_ADDRESS *Dest OPTIONAL,\r
- IN IP_IO_OVERRIDE *Override\r
+ IN OUT IP_IO *IpIo,\r
+ IN OUT NET_BUF *Pkt,\r
+ IN IP_IO_IP_PROTOCOL Sender,\r
+ IN VOID *Context OPTIONAL,\r
+ IN VOID *NotifyData OPTIONAL,\r
+ IN EFI_IP_ADDRESS *Dest OPTIONAL,\r
+ IN IP_IO_OVERRIDE *Override\r
)\r
{\r
- IP_IO_SEND_ENTRY *SndEntry;\r
- EFI_EVENT Event;\r
- EFI_STATUS Status;\r
- NET_FRAGMENT *ExtFragment;\r
- UINT32 FragmentCount;\r
- IP_IO_OVERRIDE *OverrideData;\r
- IP_IO_IP_TX_DATA *TxData;\r
- EFI_IP4_TRANSMIT_DATA *Ip4TxData;\r
- EFI_IP6_TRANSMIT_DATA *Ip6TxData;\r
+ IP_IO_SEND_ENTRY *SndEntry;\r
+ EFI_EVENT Event;\r
+ EFI_STATUS Status;\r
+ NET_FRAGMENT *ExtFragment;\r
+ UINT32 FragmentCount;\r
+ IP_IO_OVERRIDE *OverrideData;\r
+ IP_IO_IP_TX_DATA *TxData;\r
+ EFI_IP4_TRANSMIT_DATA *Ip4TxData;\r
+ EFI_IP6_TRANSMIT_DATA *Ip6TxData;\r
\r
if ((IpIo->IpVersion != IP_VERSION_4) && (IpIo->IpVersion != IP_VERSION_6)) {\r
return NULL;\r
//\r
// Allocate resource for TxData\r
//\r
- TxData = (IP_IO_IP_TX_DATA *) AllocatePool (\r
- sizeof (IP_IO_IP_TX_DATA) + sizeof (NET_FRAGMENT) * (FragmentCount - 1)\r
- );\r
+ TxData = (IP_IO_IP_TX_DATA *)AllocatePool (\r
+ sizeof (IP_IO_IP_TX_DATA) + sizeof (NET_FRAGMENT) * (FragmentCount - 1)\r
+ );\r
\r
if (NULL == TxData) {\r
goto ON_ERROR;\r
// Build a fragment table to contain the fragments in the packet.\r
//\r
if (IpIo->IpVersion == IP_VERSION_4) {\r
- ExtFragment = (NET_FRAGMENT *) TxData->Ip4TxData.FragmentTable;\r
+ ExtFragment = (NET_FRAGMENT *)TxData->Ip4TxData.FragmentTable;\r
} else {\r
- ExtFragment = (NET_FRAGMENT *) TxData->Ip6TxData.FragmentTable;\r
+ ExtFragment = (NET_FRAGMENT *)TxData->Ip6TxData.FragmentTable;\r
}\r
\r
NetbufBuildExt (Pkt, ExtFragment, &FragmentCount);\r
\r
-\r
//\r
// Allocate resource for OverrideData if needed\r
//\r
if (NULL != Override) {\r
-\r
OverrideData = AllocateCopyPool (sizeof (IP_IO_OVERRIDE), Override);\r
if (NULL == OverrideData) {\r
goto ON_ERROR;\r
// Set other fields of TxData except the fragment table\r
//\r
if (IpIo->IpVersion == IP_VERSION_4) {\r
-\r
Ip4TxData = &TxData->Ip4TxData;\r
\r
IP4_COPY_ADDRESS (&Ip4TxData->DestinationAddress, Dest);\r
SndEntry->SndToken.Ip4Token.Event = Event;\r
SndEntry->SndToken.Ip4Token.Packet.TxData = Ip4TxData;\r
} else {\r
-\r
Ip6TxData = &TxData->Ip6TxData;\r
\r
if (Dest != NULL) {\r
//\r
// Set the fields of SndEntry\r
//\r
- SndEntry->IpIo = IpIo;\r
- SndEntry->Ip = Sender;\r
- SndEntry->Context = Context;\r
- SndEntry->NotifyData = NotifyData;\r
+ SndEntry->IpIo = IpIo;\r
+ SndEntry->Ip = Sender;\r
+ SndEntry->Context = Context;\r
+ SndEntry->NotifyData = NotifyData;\r
\r
- SndEntry->Pkt = Pkt;\r
+ SndEntry->Pkt = Pkt;\r
NET_GET_REF (Pkt);\r
\r
InsertTailList (&IpIo->PendingSndList, &SndEntry->Entry);\r
return NULL;\r
}\r
\r
-\r
/**\r
Destroy the SndEntry.\r
\r
IP_IO_OVERRIDE *Override;\r
\r
if (SndEntry->IpIo->IpVersion == IP_VERSION_4) {\r
- Event = SndEntry->SndToken.Ip4Token.Event;\r
- TxData = (IP_IO_IP_TX_DATA *) SndEntry->SndToken.Ip4Token.Packet.TxData;\r
- Override = (IP_IO_OVERRIDE *) TxData->Ip4TxData.OverrideData;\r
+ Event = SndEntry->SndToken.Ip4Token.Event;\r
+ TxData = (IP_IO_IP_TX_DATA *)SndEntry->SndToken.Ip4Token.Packet.TxData;\r
+ Override = (IP_IO_OVERRIDE *)TxData->Ip4TxData.OverrideData;\r
} else if (SndEntry->IpIo->IpVersion == IP_VERSION_6) {\r
- Event = SndEntry->SndToken.Ip6Token.Event;\r
- TxData = (IP_IO_IP_TX_DATA *) SndEntry->SndToken.Ip6Token.Packet.TxData;\r
- Override = (IP_IO_OVERRIDE *) TxData->Ip6TxData.OverrideData;\r
+ Event = SndEntry->SndToken.Ip6Token.Event;\r
+ TxData = (IP_IO_IP_TX_DATA *)SndEntry->SndToken.Ip6Token.Packet.TxData;\r
+ Override = (IP_IO_OVERRIDE *)TxData->Ip6TxData.OverrideData;\r
} else {\r
- return ;\r
+ return;\r
}\r
\r
gBS->CloseEvent (Event);\r
FreePool (SndEntry);\r
}\r
\r
-\r
/**\r
Notify function for IP transmit token.\r
\r
VOID\r
EFIAPI\r
IpIoTransmitHandlerDpc (\r
- IN VOID *Context\r
+ IN VOID *Context\r
)\r
{\r
IP_IO *IpIo;\r
IP_IO_SEND_ENTRY *SndEntry;\r
EFI_STATUS Status;\r
\r
- SndEntry = (IP_IO_SEND_ENTRY *) Context;\r
+ SndEntry = (IP_IO_SEND_ENTRY *)Context;\r
\r
- IpIo = SndEntry->IpIo;\r
+ IpIo = SndEntry->IpIo;\r
\r
if (IpIo->IpVersion == IP_VERSION_4) {\r
Status = SndEntry->SndToken.Ip4Token.Status;\r
- } else if (IpIo->IpVersion == IP_VERSION_6){\r
+ } else if (IpIo->IpVersion == IP_VERSION_6) {\r
Status = SndEntry->SndToken.Ip6Token.Status;\r
} else {\r
- return ;\r
+ return;\r
}\r
\r
if ((IpIo->PktSentNotify != NULL) && (SndEntry->NotifyData != NULL)) {\r
IpIoDestroySndEntry (SndEntry);\r
}\r
\r
-\r
/**\r
Notify function for IP transmit token.\r
\r
VOID\r
EFIAPI\r
IpIoTransmitHandler (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
//\r
QueueDpc (TPL_CALLBACK, IpIoTransmitHandlerDpc, Context);\r
}\r
\r
-\r
/**\r
The dummy handler for the dummy IP receive token.\r
\r
VOID\r
EFIAPI\r
IpIoDummyHandlerDpc (\r
- IN VOID *Context\r
+ IN VOID *Context\r
)\r
{\r
- IP_IO_IP_INFO *IpInfo;\r
- EFI_STATUS Status;\r
- EFI_EVENT RecycleEvent;\r
+ IP_IO_IP_INFO *IpInfo;\r
+ EFI_STATUS Status;\r
+ EFI_EVENT RecycleEvent;\r
\r
- IpInfo = (IP_IO_IP_INFO *) Context;\r
+ IpInfo = (IP_IO_IP_INFO *)Context;\r
\r
if ((IpInfo->IpVersion != IP_VERSION_4) && (IpInfo->IpVersion != IP_VERSION_6)) {\r
- return ;\r
+ return;\r
}\r
\r
RecycleEvent = NULL;\r
}\r
}\r
\r
-\r
-\r
if (EFI_ABORTED == Status) {\r
//\r
// The reception is actively aborted by the consumer, directly return.\r
}\r
}\r
\r
-\r
/**\r
This function add IpIoDummyHandlerDpc to the end of the DPC queue.\r
\r
VOID\r
EFIAPI\r
IpIoDummyHandler (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
//\r
QueueDpc (TPL_CALLBACK, IpIoDummyHandlerDpc, Context);\r
}\r
\r
-\r
/**\r
Notify function for the IP receive token, used to process\r
the received IP packets.\r
VOID\r
EFIAPI\r
IpIoListenHandlerDpc (\r
- IN VOID *Context\r
+ IN VOID *Context\r
)\r
{\r
IP_IO *IpIo;\r
EFI_NET_SESSION_DATA Session;\r
NET_BUF *Pkt;\r
\r
- IpIo = (IP_IO *) Context;\r
+ IpIo = (IP_IO *)Context;\r
\r
if (IpIo->IpVersion == IP_VERSION_4) {\r
Status = IpIo->RcvToken.Ip4Token.Status;\r
- RxData = (IP_IO_IP_RX_DATA *) IpIo->RcvToken.Ip4Token.Packet.RxData;\r
+ RxData = (IP_IO_IP_RX_DATA *)IpIo->RcvToken.Ip4Token.Packet.RxData;\r
} else if (IpIo->IpVersion == IP_VERSION_6) {\r
Status = IpIo->RcvToken.Ip6Token.Status;\r
- RxData = (IP_IO_IP_RX_DATA *) IpIo->RcvToken.Ip6Token.Packet.RxData;\r
+ RxData = (IP_IO_IP_RX_DATA *)IpIo->RcvToken.Ip6Token.Packet.RxData;\r
} else {\r
return;\r
}\r
//\r
goto CleanUp;\r
}\r
+\r
if ((EFI_IP4 (RxData->Ip4RxData.Header->SourceAddress) != 0) &&\r
(IpIo->SubnetMask != 0) &&\r
- IP4_NET_EQUAL (IpIo->StationIp, EFI_NTOHL (((EFI_IP4_RECEIVE_DATA *) RxData)->Header->SourceAddress), IpIo->SubnetMask) &&\r
- !NetIp4IsUnicast (EFI_NTOHL (((EFI_IP4_RECEIVE_DATA *) RxData)->Header->SourceAddress), IpIo->SubnetMask)) {\r
+ IP4_NET_EQUAL (IpIo->StationIp, EFI_NTOHL (((EFI_IP4_RECEIVE_DATA *)RxData)->Header->SourceAddress), IpIo->SubnetMask) &&\r
+ !NetIp4IsUnicast (EFI_NTOHL (((EFI_IP4_RECEIVE_DATA *)RxData)->Header->SourceAddress), IpIo->SubnetMask))\r
+ {\r
//\r
// The source address doesn't match StationIp and it's not a unicast IP address, discard it.\r
//\r
// Create a netbuffer representing IPv4 packet\r
//\r
Pkt = NetbufFromExt (\r
- (NET_FRAGMENT *) RxData->Ip4RxData.FragmentTable,\r
+ (NET_FRAGMENT *)RxData->Ip4RxData.FragmentTable,\r
RxData->Ip4RxData.FragmentCount,\r
0,\r
0,\r
Session.IpVersion = IP_VERSION_4;\r
} else {\r
ASSERT (RxData->Ip6RxData.Header != NULL);\r
- if (!NetIp6IsValidUnicast(&RxData->Ip6RxData.Header->SourceAddress)) {\r
+ if (!NetIp6IsValidUnicast (&RxData->Ip6RxData.Header->SourceAddress)) {\r
goto CleanUp;\r
}\r
\r
// Create a netbuffer representing IPv6 packet\r
//\r
Pkt = NetbufFromExt (\r
- (NET_FRAGMENT *) RxData->Ip6RxData.FragmentTable,\r
+ (NET_FRAGMENT *)RxData->Ip6RxData.FragmentTable,\r
RxData->Ip6RxData.FragmentCount,\r
0,\r
0,\r
CopyMem (\r
&Session.Source,\r
&RxData->Ip6RxData.Header->SourceAddress,\r
- sizeof(EFI_IPv6_ADDRESS)\r
+ sizeof (EFI_IPv6_ADDRESS)\r
);\r
CopyMem (\r
&Session.Dest,\r
&RxData->Ip6RxData.Header->DestinationAddress,\r
- sizeof(EFI_IPv6_ADDRESS)\r
+ sizeof (EFI_IPv6_ADDRESS)\r
);\r
Session.IpHdr.Ip6Hdr = RxData->Ip6RxData.Header;\r
Session.IpHdrLen = RxData->Ip6RxData.HeaderLength;\r
}\r
\r
if (EFI_SUCCESS == Status) {\r
-\r
IpIo->PktRcvdNotify (EFI_SUCCESS, 0, &Session, Pkt, IpIo->RcvdContext);\r
} else {\r
//\r
\r
CleanUp:\r
\r
- if (IpIo->IpVersion == IP_VERSION_4){\r
+ if (IpIo->IpVersion == IP_VERSION_4) {\r
gBS->SignalEvent (RxData->Ip4RxData.RecycleSignal);\r
} else {\r
gBS->SignalEvent (RxData->Ip6RxData.RecycleSignal);\r
\r
Resume:\r
\r
- if (IpIo->IpVersion == IP_VERSION_4){\r
+ if (IpIo->IpVersion == IP_VERSION_4) {\r
IpIo->Ip.Ip4->Receive (IpIo->Ip.Ip4, &(IpIo->RcvToken.Ip4Token));\r
} else {\r
IpIo->Ip.Ip6->Receive (IpIo->Ip.Ip6, &(IpIo->RcvToken.Ip6Token));\r
VOID\r
EFIAPI\r
IpIoListenHandler (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
//\r
QueueDpc (TPL_CALLBACK, IpIoListenHandlerDpc, Context);\r
}\r
\r
-\r
/**\r
Create a new IP_IO instance.\r
\r
IP_IO *\r
EFIAPI\r
IpIoCreate (\r
- IN EFI_HANDLE Image,\r
- IN EFI_HANDLE Controller,\r
- IN UINT8 IpVersion\r
+ IN EFI_HANDLE Image,\r
+ IN EFI_HANDLE Controller,\r
+ IN UINT8 IpVersion\r
)\r
{\r
EFI_STATUS Status;\r
\r
InitializeListHead (&(IpIo->PendingSndList));\r
InitializeListHead (&(IpIo->IpList));\r
- IpIo->Controller = Controller;\r
- IpIo->Image = Image;\r
- IpIo->IpVersion = IpVersion;\r
- Event = NULL;\r
+ IpIo->Controller = Controller;\r
+ IpIo->Image = Image;\r
+ IpIo->IpVersion = IpVersion;\r
+ Event = NULL;\r
\r
Status = gBS->CreateEvent (\r
EVT_NOTIFY_SIGNAL,\r
Image,\r
&IpIo->ChildHandle,\r
IpVersion,\r
- (VOID **) & (IpIo->Ip)\r
+ (VOID **)&(IpIo->Ip)\r
);\r
if (EFI_ERROR (Status)) {\r
goto ReleaseIpIo;\r
return NULL;\r
}\r
\r
-\r
/**\r
Open an IP_IO instance for use.\r
\r
EFI_STATUS\r
EFIAPI\r
IpIoOpen (\r
- IN OUT IP_IO *IpIo,\r
- IN IP_IO_OPEN_DATA *OpenData\r
+ IN OUT IP_IO *IpIo,\r
+ IN IP_IO_OPEN_DATA *OpenData\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT8 IpVersion;\r
+ EFI_STATUS Status;\r
+ UINT8 IpVersion;\r
\r
- if (IpIo == NULL || OpenData == NULL) {\r
+ if ((IpIo == NULL) || (OpenData == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
// configure ip\r
//\r
- if (IpVersion == IP_VERSION_4){\r
+ if (IpVersion == IP_VERSION_4) {\r
//\r
// RawData mode is no supported.\r
//\r
}\r
\r
if (!OpenData->IpConfigData.Ip4CfgData.UseDefaultAddress) {\r
- IpIo->StationIp = EFI_NTOHL (OpenData->IpConfigData.Ip4CfgData.StationAddress);\r
+ IpIo->StationIp = EFI_NTOHL (OpenData->IpConfigData.Ip4CfgData.StationAddress);\r
IpIo->SubnetMask = EFI_NTOHL (OpenData->IpConfigData.Ip4CfgData.SubnetMask);\r
}\r
\r
&OpenData->IpConfigData.Ip4CfgData\r
);\r
} else {\r
-\r
Status = IpIo->Ip.Ip6->Configure (\r
IpIo->Ip.Ip6,\r
&OpenData->IpConfigData.Ip6CfgData\r
// @bug (0.0.0.0, 0.0.0.0, 0.0.0.0). Delete this statement if Ip modified\r
// @bug its code\r
//\r
- if (IpVersion == IP_VERSION_4){\r
+ if (IpVersion == IP_VERSION_4) {\r
Status = IpIo->Ip.Ip4->Routes (\r
IpIo->Ip.Ip4,\r
TRUE,\r
IpIo->PktRcvdNotify = OpenData->PktRcvdNotify;\r
IpIo->PktSentNotify = OpenData->PktSentNotify;\r
\r
- IpIo->RcvdContext = OpenData->RcvdContext;\r
- IpIo->SndContext = OpenData->SndContext;\r
+ IpIo->RcvdContext = OpenData->RcvdContext;\r
+ IpIo->SndContext = OpenData->SndContext;\r
\r
- if (IpVersion == IP_VERSION_4){\r
+ if (IpVersion == IP_VERSION_4) {\r
IpIo->Protocol = OpenData->IpConfigData.Ip4CfgData.DefaultProtocol;\r
\r
//\r
IpIo->Ip.Ip4->Configure (IpIo->Ip.Ip4, NULL);\r
return Status;\r
}\r
-\r
} else {\r
-\r
IpIo->Protocol = OpenData->IpConfigData.Ip6CfgData.DefaultProtocol;\r
- Status = IpIo->Ip.Ip6->Receive (\r
- IpIo->Ip.Ip6,\r
- &(IpIo->RcvToken.Ip6Token)\r
- );\r
+ Status = IpIo->Ip.Ip6->Receive (\r
+ IpIo->Ip.Ip6,\r
+ &(IpIo->RcvToken.Ip6Token)\r
+ );\r
if (EFI_ERROR (Status)) {\r
IpIo->Ip.Ip6->Configure (IpIo->Ip.Ip6, NULL);\r
return Status;\r
return Status;\r
}\r
\r
-\r
/**\r
Stop an IP_IO instance.\r
\r
EFI_STATUS\r
EFIAPI\r
IpIoStop (\r
- IN OUT IP_IO *IpIo\r
+ IN OUT IP_IO *IpIo\r
)\r
{\r
- EFI_STATUS Status;\r
- IP_IO_IP_INFO *IpInfo;\r
- UINT8 IpVersion;\r
+ EFI_STATUS Status;\r
+ IP_IO_IP_INFO *IpInfo;\r
+ UINT8 IpVersion;\r
\r
if (IpIo == NULL) {\r
return EFI_INVALID_PARAMETER;\r
} else {\r
Status = IpIo->Ip.Ip6->Configure (IpIo->Ip.Ip6, NULL);\r
}\r
+\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
IpIo->IsConfigured = FALSE;\r
\r
//\r
- // Detroy the Ip List used by IpIo\r
+ // Destroy the Ip List used by IpIo\r
//\r
\r
while (!IsListEmpty (&(IpIo->IpList))) {\r
//\r
// Close the receive event.\r
//\r
- if (IpVersion == IP_VERSION_4){\r
+ if (IpVersion == IP_VERSION_4) {\r
gBS->CloseEvent (IpIo->RcvToken.Ip4Token.Event);\r
} else {\r
gBS->CloseEvent (IpIo->RcvToken.Ip6Token.Event);\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Destroy an IP_IO instance.\r
\r
EFI_STATUS\r
EFIAPI\r
IpIoDestroy (\r
- IN OUT IP_IO *IpIo\r
+ IN OUT IP_IO *IpIo\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// Stop the IpIo.\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Send out an IP packet.\r
\r
This function is called after IpIoOpen(). The data to be sent is wrapped in\r
Pkt. The IP instance wrapped in IpIo is used for sending by default but can be\r
- overriden by Sender. Other sending configs, like source address and gateway\r
+ overridden by Sender. Other sending configs, like source address and gateway\r
address etc., are specified in OverrideData.\r
\r
@param[in, out] IpIo Pointer to an IP_IO instance used for sending IP\r
EFI_STATUS\r
EFIAPI\r
IpIoSend (\r
- IN OUT IP_IO *IpIo,\r
- IN OUT NET_BUF *Pkt,\r
- IN IP_IO_IP_INFO *Sender OPTIONAL,\r
- IN VOID *Context OPTIONAL,\r
- IN VOID *NotifyData OPTIONAL,\r
- IN EFI_IP_ADDRESS *Dest OPTIONAL,\r
- IN IP_IO_OVERRIDE *OverrideData OPTIONAL\r
+ IN OUT IP_IO *IpIo,\r
+ IN OUT NET_BUF *Pkt,\r
+ IN IP_IO_IP_INFO *Sender OPTIONAL,\r
+ IN VOID *Context OPTIONAL,\r
+ IN VOID *NotifyData OPTIONAL,\r
+ IN EFI_IP_ADDRESS *Dest OPTIONAL,\r
+ IN IP_IO_OVERRIDE *OverrideData OPTIONAL\r
)\r
{\r
- EFI_STATUS Status;\r
- IP_IO_IP_PROTOCOL Ip;\r
- IP_IO_SEND_ENTRY *SndEntry;\r
+ EFI_STATUS Status;\r
+ IP_IO_IP_PROTOCOL Ip;\r
+ IP_IO_SEND_ENTRY *SndEntry;\r
\r
if ((IpIo == NULL) || (Pkt == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
//\r
// Send this Packet\r
//\r
- if (IpIo->IpVersion == IP_VERSION_4){\r
+ if (IpIo->IpVersion == IP_VERSION_4) {\r
Status = Ip.Ip4->Transmit (\r
Ip.Ip4,\r
&SndEntry->SndToken.Ip4Token\r
return Status;\r
}\r
\r
-\r
/**\r
Cancel the IP transmit token which wraps this Packet.\r
\r
IN VOID *Packet\r
)\r
{\r
- LIST_ENTRY *Node;\r
- IP_IO_SEND_ENTRY *SndEntry;\r
- IP_IO_IP_PROTOCOL Ip;\r
+ LIST_ENTRY *Node;\r
+ IP_IO_SEND_ENTRY *SndEntry;\r
+ IP_IO_IP_PROTOCOL Ip;\r
\r
ASSERT ((IpIo != NULL) && (Packet != NULL));\r
\r
NET_LIST_FOR_EACH (Node, &IpIo->PendingSndList) {\r
-\r
SndEntry = NET_LIST_USER_STRUCT (Node, IP_IO_SEND_ENTRY, Entry);\r
\r
if (SndEntry->Pkt == Packet) {\r
-\r
Ip = SndEntry->Ip;\r
\r
if (IpIo->IpVersion == IP_VERSION_4) {\r
break;\r
}\r
}\r
-\r
}\r
\r
-\r
/**\r
Add a new IP instance for sending data.\r
\r
IpIo->Image,\r
&IpInfo->ChildHandle,\r
IpInfo->IpVersion,\r
- (VOID **) &IpInfo->Ip\r
+ (VOID **)&IpInfo->Ip\r
);\r
if (EFI_ERROR (Status)) {\r
goto ReleaseIpInfo;\r
return NULL;\r
}\r
\r
-\r
/**\r
Configure the IP instance of this IpInfo and start the receiving if IpConfigData\r
is not NULL.\r
EFI_STATUS\r
EFIAPI\r
IpIoConfigIp (\r
- IN OUT IP_IO_IP_INFO *IpInfo,\r
- IN OUT VOID *IpConfigData OPTIONAL\r
+ IN OUT IP_IO_IP_INFO *IpInfo,\r
+ IN OUT VOID *IpConfigData OPTIONAL\r
)\r
{\r
EFI_STATUS Status;\r
\r
if (IpConfigData != NULL) {\r
if (IpInfo->IpVersion == IP_VERSION_4) {\r
-\r
- if (((EFI_IP4_CONFIG_DATA *) IpConfigData)->UseDefaultAddress) {\r
+ if (((EFI_IP4_CONFIG_DATA *)IpConfigData)->UseDefaultAddress) {\r
Status = Ip.Ip4->GetModeData (\r
Ip.Ip4,\r
&Ip4ModeData,\r
return Status;\r
}\r
\r
- IP4_COPY_ADDRESS (&((EFI_IP4_CONFIG_DATA*) IpConfigData)->StationAddress, &Ip4ModeData.ConfigData.StationAddress);\r
- IP4_COPY_ADDRESS (&((EFI_IP4_CONFIG_DATA*) IpConfigData)->SubnetMask, &Ip4ModeData.ConfigData.SubnetMask);\r
+ IP4_COPY_ADDRESS (&((EFI_IP4_CONFIG_DATA *)IpConfigData)->StationAddress, &Ip4ModeData.ConfigData.StationAddress);\r
+ IP4_COPY_ADDRESS (&((EFI_IP4_CONFIG_DATA *)IpConfigData)->SubnetMask, &Ip4ModeData.ConfigData.SubnetMask);\r
}\r
\r
CopyMem (\r
&IpInfo->Addr.Addr,\r
- &((EFI_IP4_CONFIG_DATA *) IpConfigData)->StationAddress,\r
+ &((EFI_IP4_CONFIG_DATA *)IpConfigData)->StationAddress,\r
sizeof (IP4_ADDR)\r
);\r
CopyMem (\r
&IpInfo->PreMask.SubnetMask,\r
- &((EFI_IP4_CONFIG_DATA *) IpConfigData)->SubnetMask,\r
+ &((EFI_IP4_CONFIG_DATA *)IpConfigData)->SubnetMask,\r
sizeof (IP4_ADDR)\r
);\r
\r
\r
if (Ip6ModeData.IsConfigured) {\r
CopyMem (\r
- &((EFI_IP6_CONFIG_DATA *) IpConfigData)->StationAddress,\r
+ &((EFI_IP6_CONFIG_DATA *)IpConfigData)->StationAddress,\r
&Ip6ModeData.ConfigData.StationAddress,\r
sizeof (EFI_IPv6_ADDRESS)\r
);\r
if (Ip6ModeData.IcmpTypeList != NULL) {\r
FreePool (Ip6ModeData.IcmpTypeList);\r
}\r
-\r
} else {\r
Status = EFI_NO_MAPPING;\r
return Status;\r
return Status;\r
}\r
\r
-\r
/**\r
Destroy an IP instance maintained in IpIo->IpList for\r
sending purpose.\r
\r
This function pairs with IpIoAddIp(). The IpInfo is previously created by\r
IpIoAddIp(). The IP_IO_IP_INFO::RefCnt is decremented and the IP instance\r
- will be dstroyed if the RefCnt is zero.\r
+ will be destroyed if the RefCnt is zero.\r
\r
@param[in] IpIo Pointer to the IP_IO instance.\r
@param[in] IpInfo Pointer to the IpInfo to be removed.\r
VOID\r
EFIAPI\r
IpIoRemoveIp (\r
- IN IP_IO *IpIo,\r
- IN IP_IO_IP_INFO *IpInfo\r
+ IN IP_IO *IpIo,\r
+ IN IP_IO_IP_INFO *IpInfo\r
)\r
{\r
+ UINT8 IpVersion;\r
\r
- UINT8 IpVersion;\r
-\r
- if (IpIo == NULL || IpInfo == NULL) {\r
+ if ((IpIo == NULL) || (IpInfo == NULL)) {\r
return;\r
}\r
\r
NET_PUT_REF (IpInfo);\r
\r
if (IpInfo->RefCnt > 0) {\r
-\r
return;\r
}\r
\r
\r
RemoveEntryList (&IpInfo->Entry);\r
\r
- if (IpVersion == IP_VERSION_4){\r
+ if (IpVersion == IP_VERSION_4) {\r
IpInfo->Ip.Ip4->Configure (\r
IpInfo->Ip.Ip4,\r
NULL\r
);\r
\r
gBS->CloseEvent (IpInfo->DummyRcvToken.Ip4Token.Event);\r
-\r
} else {\r
-\r
IpInfo->Ip.Ip6->Configure (\r
IpInfo->Ip.Ip6,\r
NULL\r
FreePool (IpInfo);\r
}\r
\r
-\r
/**\r
Find the first IP protocol maintained in IpIo whose local\r
address is the same as Src.\r
IN EFI_IP_ADDRESS *Src\r
)\r
{\r
- LIST_ENTRY *IpIoEntry;\r
- IP_IO *IpIoPtr;\r
- LIST_ENTRY *IpInfoEntry;\r
- IP_IO_IP_INFO *IpInfo;\r
+ LIST_ENTRY *IpIoEntry;\r
+ IP_IO *IpIoPtr;\r
+ LIST_ENTRY *IpInfoEntry;\r
+ IP_IO_IP_INFO *IpInfo;\r
\r
- if (IpIo == NULL || Src == NULL) {\r
+ if ((IpIo == NULL) || (Src == NULL)) {\r
return NULL;\r
}\r
\r
\r
NET_LIST_FOR_EACH (IpInfoEntry, &IpIoPtr->IpList) {\r
IpInfo = NET_LIST_USER_STRUCT (IpInfoEntry, IP_IO_IP_INFO, Entry);\r
- if (IpInfo->IpVersion == IP_VERSION_4){\r
-\r
+ if (IpInfo->IpVersion == IP_VERSION_4) {\r
if (EFI_IP4_EQUAL (&IpInfo->Addr.v4, &Src->v4)) {\r
*IpIo = IpIoPtr;\r
return IpInfo;\r
}\r
-\r
} else {\r
-\r
if (EFI_IP6_EQUAL (&IpInfo->Addr.v6, &Src->v6)) {\r
*IpIo = IpIoPtr;\r
return IpInfo;\r
return NULL;\r
}\r
\r
-\r
/**\r
Get the ICMP error map information.\r
\r
EFI_STATUS\r
EFIAPI\r
IpIoGetIcmpErrStatus (\r
- IN UINT8 IcmpError,\r
- IN UINT8 IpVersion,\r
- OUT BOOLEAN *IsHard OPTIONAL,\r
- OUT BOOLEAN *Notify OPTIONAL\r
+ IN UINT8 IcmpError,\r
+ IN UINT8 IpVersion,\r
+ OUT BOOLEAN *IsHard OPTIONAL,\r
+ OUT BOOLEAN *Notify OPTIONAL\r
)\r
{\r
if (IpVersion == IP_VERSION_4 ) {\r
}\r
\r
switch (IcmpError) {\r
- case ICMP_ERR_UNREACH_NET:\r
- return EFI_NETWORK_UNREACHABLE;\r
+ case ICMP_ERR_UNREACH_NET:\r
+ return EFI_NETWORK_UNREACHABLE;\r
\r
- case ICMP_ERR_TIMXCEED_INTRANS:\r
- case ICMP_ERR_TIMXCEED_REASS:\r
- case ICMP_ERR_UNREACH_HOST:\r
- return EFI_HOST_UNREACHABLE;\r
+ case ICMP_ERR_TIMXCEED_INTRANS:\r
+ case ICMP_ERR_TIMXCEED_REASS:\r
+ case ICMP_ERR_UNREACH_HOST:\r
+ return EFI_HOST_UNREACHABLE;\r
\r
- case ICMP_ERR_UNREACH_PROTOCOL:\r
- return EFI_PROTOCOL_UNREACHABLE;\r
+ case ICMP_ERR_UNREACH_PROTOCOL:\r
+ return EFI_PROTOCOL_UNREACHABLE;\r
\r
- case ICMP_ERR_UNREACH_PORT:\r
- return EFI_PORT_UNREACHABLE;\r
+ case ICMP_ERR_UNREACH_PORT:\r
+ return EFI_PORT_UNREACHABLE;\r
\r
- case ICMP_ERR_MSGSIZE:\r
- case ICMP_ERR_UNREACH_SRCFAIL:\r
- case ICMP_ERR_QUENCH:\r
- case ICMP_ERR_PARAMPROB:\r
- return EFI_ICMP_ERROR;\r
+ case ICMP_ERR_MSGSIZE:\r
+ case ICMP_ERR_UNREACH_SRCFAIL:\r
+ case ICMP_ERR_QUENCH:\r
+ case ICMP_ERR_PARAMPROB:\r
+ return EFI_ICMP_ERROR;\r
\r
- default:\r
- ASSERT (FALSE);\r
- return EFI_UNSUPPORTED;\r
+ default:\r
+ ASSERT (FALSE);\r
+ return EFI_UNSUPPORTED;\r
}\r
-\r
} else if (IpVersion == IP_VERSION_6) {\r
-\r
ASSERT (IcmpError <= ICMP6_ERR_PARAMPROB_IPV6OPTION);\r
\r
if (IsHard != NULL) {\r
}\r
\r
switch (IcmpError) {\r
- case ICMP6_ERR_UNREACH_NET:\r
- return EFI_NETWORK_UNREACHABLE;\r
+ case ICMP6_ERR_UNREACH_NET:\r
+ return EFI_NETWORK_UNREACHABLE;\r
\r
- case ICMP6_ERR_UNREACH_HOST:\r
- case ICMP6_ERR_TIMXCEED_HOPLIMIT:\r
- case ICMP6_ERR_TIMXCEED_REASS:\r
- return EFI_HOST_UNREACHABLE;\r
+ case ICMP6_ERR_UNREACH_HOST:\r
+ case ICMP6_ERR_TIMXCEED_HOPLIMIT:\r
+ case ICMP6_ERR_TIMXCEED_REASS:\r
+ return EFI_HOST_UNREACHABLE;\r
\r
- case ICMP6_ERR_UNREACH_PROTOCOL:\r
- return EFI_PROTOCOL_UNREACHABLE;\r
+ case ICMP6_ERR_UNREACH_PROTOCOL:\r
+ return EFI_PROTOCOL_UNREACHABLE;\r
\r
- case ICMP6_ERR_UNREACH_PORT:\r
- return EFI_PORT_UNREACHABLE;\r
+ case ICMP6_ERR_UNREACH_PORT:\r
+ return EFI_PORT_UNREACHABLE;\r
\r
- case ICMP6_ERR_PACKAGE_TOOBIG:\r
- case ICMP6_ERR_PARAMPROB_HEADER:\r
- case ICMP6_ERR_PARAMPROB_NEXHEADER:\r
- case ICMP6_ERR_PARAMPROB_IPV6OPTION:\r
- return EFI_ICMP_ERROR;\r
+ case ICMP6_ERR_PACKAGE_TOOBIG:\r
+ case ICMP6_ERR_PARAMPROB_HEADER:\r
+ case ICMP6_ERR_PARAMPROB_NEXHEADER:\r
+ case ICMP6_ERR_PARAMPROB_IPV6OPTION:\r
+ return EFI_ICMP_ERROR;\r
\r
- default:\r
- ASSERT (FALSE);\r
- return EFI_UNSUPPORTED;\r
+ default:\r
+ ASSERT (FALSE);\r
+ return EFI_UNSUPPORTED;\r
}\r
-\r
} else {\r
//\r
// Should never be here\r
}\r
}\r
\r
-\r
/**\r
Refresh the remote peer's Neighbor Cache entries.\r
\r
\r
return Ip->Neighbors (Ip, FALSE, &Neighbor->v6, NULL, Timeout, TRUE);\r
}\r
-\r