#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
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 opened IP protocol and destroy the IP child.\r
\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
**/\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
//\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
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
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