\r
#include "Ip4Impl.h"\r
\r
-EFI_IPSEC2_PROTOCOL *mIpSec = NULL;\r
+EFI_IPSEC2_PROTOCOL *mIpSec = NULL;\r
\r
/**\r
Gets the current operational settings for this instance of the EFI IPv4 Protocol driver.\r
EFI_STATUS\r
EFIAPI\r
EfiIp4GetModeData (\r
- IN CONST EFI_IP4_PROTOCOL *This,\r
- OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,\r
- OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,\r
- OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL\r
+ IN CONST EFI_IP4_PROTOCOL *This,\r
+ OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,\r
+ OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,\r
+ OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Configure (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN EFI_IP4_CONFIG_DATA *IpConfigData OPTIONAL\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN EFI_IP4_CONFIG_DATA *IpConfigData OPTIONAL\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Groups (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN BOOLEAN JoinFlag,\r
- IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN BOOLEAN JoinFlag,\r
+ IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Routes (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN BOOLEAN DeleteRoute,\r
- IN EFI_IPv4_ADDRESS *SubnetAddress,\r
- IN EFI_IPv4_ADDRESS *SubnetMask,\r
- IN EFI_IPv4_ADDRESS *GatewayAddress\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN BOOLEAN DeleteRoute,\r
+ IN EFI_IPv4_ADDRESS *SubnetAddress,\r
+ IN EFI_IPv4_ADDRESS *SubnetMask,\r
+ IN EFI_IPv4_ADDRESS *GatewayAddress\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Transmit (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN EFI_IP4_COMPLETION_TOKEN *Token\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN EFI_IP4_COMPLETION_TOKEN *Token\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Receive (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN EFI_IP4_COMPLETION_TOKEN *Token\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN EFI_IP4_COMPLETION_TOKEN *Token\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Cancel (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL\r
);\r
\r
/**\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Poll (\r
- IN EFI_IP4_PROTOCOL *This\r
+ IN EFI_IP4_PROTOCOL *This\r
);\r
\r
EFI_IP4_PROTOCOL\r
-mEfiIp4ProtocolTemplete = {\r
+ mEfiIp4ProtocolTemplete = {\r
EfiIp4GetModeData,\r
EfiIp4Configure,\r
EfiIp4Groups,\r
EFI_STATUS\r
EFIAPI\r
EfiIp4GetModeData (\r
- IN CONST EFI_IP4_PROTOCOL *This,\r
- OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,\r
- OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,\r
- OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL\r
+ IN CONST EFI_IP4_PROTOCOL *This,\r
+ OUT EFI_IP4_MODE_DATA *Ip4ModeData OPTIONAL,\r
+ OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData OPTIONAL,\r
+ OUT EFI_SIMPLE_NETWORK_MODE *SnpModeData OPTIONAL\r
)\r
{\r
- IP4_PROTOCOL *IpInstance;\r
- IP4_SERVICE *IpSb;\r
- EFI_IP4_CONFIG_DATA *Config;\r
- EFI_STATUS Status;\r
- EFI_TPL OldTpl;\r
- IP4_ADDR Ip;\r
+ IP4_PROTOCOL *IpInstance;\r
+ IP4_SERVICE *IpSb;\r
+ EFI_IP4_CONFIG_DATA *Config;\r
+ EFI_STATUS Status;\r
+ EFI_TPL OldTpl;\r
+ IP4_ADDR Ip;\r
\r
if (This == NULL) {\r
return EFI_INVALID_PARAMETER;\r
// IsStarted is "whether the EfiIp4Configure has been called".\r
// IsConfigured is "whether the station address has been configured"\r
//\r
- Ip4ModeData->IsStarted = (BOOLEAN)(IpInstance->State == IP4_STATE_CONFIGED);\r
+ Ip4ModeData->IsStarted = (BOOLEAN)(IpInstance->State == IP4_STATE_CONFIGED);\r
CopyMem (&Ip4ModeData->ConfigData, &IpInstance->ConfigData, sizeof (Ip4ModeData->ConfigData));\r
- Ip4ModeData->IsConfigured = FALSE;\r
+ Ip4ModeData->IsConfigured = FALSE;\r
\r
- Ip4ModeData->GroupCount = IpInstance->GroupCount;\r
- Ip4ModeData->GroupTable = (EFI_IPv4_ADDRESS *) IpInstance->Groups;\r
+ Ip4ModeData->GroupCount = IpInstance->GroupCount;\r
+ Ip4ModeData->GroupTable = (EFI_IPv4_ADDRESS *)IpInstance->Groups;\r
\r
Ip4ModeData->IcmpTypeCount = 23;\r
Ip4ModeData->IcmpTypeList = mIp4SupportedIcmp;\r
\r
- Ip4ModeData->RouteTable = NULL;\r
- Ip4ModeData->RouteCount = 0;\r
+ Ip4ModeData->RouteTable = NULL;\r
+ Ip4ModeData->RouteCount = 0;\r
\r
Ip4ModeData->MaxPacketSize = IpSb->MaxPacketSize;\r
\r
// using the default one, such as a ftp server.\r
//\r
if (Ip4ModeData->IsStarted) {\r
- Config = &Ip4ModeData->ConfigData;\r
+ Config = &Ip4ModeData->ConfigData;\r
\r
Ip = HTONL (IpInstance->Interface->Ip);\r
CopyMem (&Config->StationAddress, &Ip, sizeof (EFI_IPv4_ADDRESS));\r
return Status;\r
}\r
\r
-\r
/**\r
Config the MNP parameter used by IP. The IP driver use one MNP\r
child to transmit/receive frames. By default, it configures MNP\r
**/\r
EFI_STATUS\r
Ip4ServiceConfigMnp (\r
- IN IP4_SERVICE *IpSb,\r
- IN BOOLEAN Force\r
+ IN IP4_SERVICE *IpSb,\r
+ IN BOOLEAN Force\r
)\r
{\r
- LIST_ENTRY *Entry;\r
- LIST_ENTRY *ProtoEntry;\r
- IP4_INTERFACE *IpIf;\r
- IP4_PROTOCOL *IpInstance;\r
- BOOLEAN Reconfig;\r
- BOOLEAN PromiscReceive;\r
- EFI_STATUS Status;\r
+ LIST_ENTRY *Entry;\r
+ LIST_ENTRY *ProtoEntry;\r
+ IP4_INTERFACE *IpIf;\r
+ IP4_PROTOCOL *IpInstance;\r
+ BOOLEAN Reconfig;\r
+ BOOLEAN PromiscReceive;\r
+ EFI_STATUS Status;\r
\r
Reconfig = FALSE;\r
PromiscReceive = FALSE;\r
// filter also.\r
//\r
NET_LIST_FOR_EACH (Entry, &IpSb->Interfaces) {\r
-\r
IpIf = NET_LIST_USER_STRUCT (Entry, IP4_INTERFACE, Link);\r
IpIf->PromiscRecv = FALSE;\r
\r
return EFI_SUCCESS;\r
}\r
\r
- Reconfig = TRUE;\r
+ Reconfig = TRUE;\r
IpSb->MnpConfigData.EnablePromiscuousReceive = PromiscReceive;\r
}\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Initialize the IP4_PROTOCOL structure to the unconfigured states.\r
\r
**/\r
VOID\r
Ip4InitProtocol (\r
- IN IP4_SERVICE *IpSb,\r
- IN OUT IP4_PROTOCOL *IpInstance\r
+ IN IP4_SERVICE *IpSb,\r
+ IN OUT IP4_PROTOCOL *IpInstance\r
)\r
{\r
ASSERT ((IpSb != NULL) && (IpInstance != NULL));\r
IpInstance->Signature = IP4_PROTOCOL_SIGNATURE;\r
CopyMem (&IpInstance->Ip4Proto, &mEfiIp4ProtocolTemplete, sizeof (IpInstance->Ip4Proto));\r
IpInstance->State = IP4_STATE_UNCONFIGED;\r
- IpInstance->InDestroy = FALSE;\r
+ IpInstance->InDestroy = FALSE;\r
IpInstance->Service = IpSb;\r
\r
InitializeListHead (&IpInstance->Link);\r
- NetMapInit (&IpInstance->RxTokens);\r
- NetMapInit (&IpInstance->TxTokens);\r
+ NetMapInit (&IpInstance->RxTokens);\r
+ NetMapInit (&IpInstance->TxTokens);\r
InitializeListHead (&IpInstance->Received);\r
InitializeListHead (&IpInstance->Delivered);\r
InitializeListHead (&IpInstance->AddrLink);\r
EfiInitializeLock (&IpInstance->RecycleLock, TPL_NOTIFY);\r
}\r
\r
-\r
/**\r
Configure the IP4 child. If the child is already configured,\r
change the configuration parameter. Otherwise configure it\r
\r
IpSb = IpInstance->Service;\r
\r
- Ip4Config2 = NULL;\r
+ Ip4Config2 = NULL;\r
\r
//\r
// User is changing packet filters. It must be stopped\r
\r
if (IpIf != NULL) {\r
NET_GET_REF (IpIf);\r
-\r
} else {\r
IpIf = Ip4CreateInterface (IpSb->Mnp, IpSb->Controller, IpSb->Image);\r
\r
Policy = IpSb->Ip4Config2Instance.Policy;\r
if (Policy != Ip4Config2PolicyDhcp) {\r
Ip4Config2 = &IpSb->Ip4Config2Instance.Ip4Config2;\r
- Policy = Ip4Config2PolicyDhcp;\r
- Status= Ip4Config2->SetData (\r
- Ip4Config2,\r
- Ip4Config2DataTypePolicy,\r
- sizeof (EFI_IP4_CONFIG2_POLICY),\r
- &Policy\r
- );\r
+ Policy = Ip4Config2PolicyDhcp;\r
+ Status = Ip4Config2->SetData (\r
+ Ip4Config2,\r
+ Ip4Config2DataTypePolicy,\r
+ sizeof (EFI_IP4_CONFIG2_POLICY),\r
+ &Policy\r
+ );\r
if (EFI_ERROR (Status)) {\r
goto ON_ERROR;\r
}\r
\r
IpInstance->Interface = IpIf;\r
if (IpIf->Arp != NULL) {\r
- Arp = NULL;\r
+ Arp = NULL;\r
Status = gBS->OpenProtocol (\r
IpIf->ArpHandle,\r
&gEfiArpProtocolGuid,\r
- (VOID **) &Arp,\r
+ (VOID **)&Arp,\r
gIp4DriverBinding.DriverBindingHandle,\r
IpInstance->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
goto ON_ERROR;\r
}\r
}\r
+\r
InsertTailList (&IpIf->IpInstances, &IpInstance->AddrLink);\r
\r
CopyMem (&IpInstance->ConfigData, Config, sizeof (IpInstance->ConfigData));\r
- IpInstance->State = IP4_STATE_CONFIGED;\r
+ IpInstance->State = IP4_STATE_CONFIGED;\r
\r
//\r
// Although EFI_NO_MAPPING is an error code, the IP child has been\r
return Status;\r
}\r
\r
-\r
/**\r
Clean up the IP4 child, release all the resources used by it.\r
\r
**/\r
EFI_STATUS\r
Ip4CleanProtocol (\r
- IN IP4_PROTOCOL *IpInstance\r
+ IN IP4_PROTOCOL *IpInstance\r
)\r
{\r
if (EFI_ERROR (Ip4Cancel (IpInstance, NULL))) {\r
// hasn't been called. Just leave it alone.\r
//\r
if (!IsListEmpty (&IpInstance->Delivered)) {\r
- ;\r
}\r
\r
if (IpInstance->Interface != NULL) {\r
IpInstance->Handle\r
);\r
}\r
+\r
Ip4FreeInterface (IpInstance->Interface, IpInstance);\r
IpInstance->Interface = NULL;\r
}\r
\r
if (IpInstance->Groups != NULL) {\r
FreePool (IpInstance->Groups);\r
- IpInstance->Groups = NULL;\r
- IpInstance->GroupCount = 0;\r
+ IpInstance->Groups = NULL;\r
+ IpInstance->GroupCount = 0;\r
}\r
\r
NetMapClean (&IpInstance->TxTokens);\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Assigns an IPv4 address and subnet mask to this EFI IPv4 Protocol driver instance.\r
\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Configure (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN EFI_IP4_CONFIG_DATA *IpConfigData OPTIONAL\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN EFI_IP4_CONFIG_DATA *IpConfigData OPTIONAL\r
)\r
{\r
- IP4_PROTOCOL *IpInstance;\r
- EFI_IP4_CONFIG_DATA *Current;\r
- EFI_TPL OldTpl;\r
- EFI_STATUS Status;\r
- BOOLEAN AddrOk;\r
- IP4_ADDR IpAddress;\r
- IP4_ADDR SubnetMask;\r
+ IP4_PROTOCOL *IpInstance;\r
+ EFI_IP4_CONFIG_DATA *Current;\r
+ EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
+ BOOLEAN AddrOk;\r
+ IP4_ADDR IpAddress;\r
+ IP4_ADDR SubnetMask;\r
\r
//\r
// First, validate the parameters\r
// Validate the configuration first.\r
//\r
if (IpConfigData != NULL) {\r
-\r
CopyMem (&IpAddress, &IpConfigData->StationAddress, sizeof (IP4_ADDR));\r
CopyMem (&SubnetMask, &IpConfigData->SubnetMask, sizeof (IP4_ADDR));\r
\r
}\r
\r
if (!Current->UseDefaultAddress &&\r
- (!EFI_IP4_EQUAL (&Current->StationAddress, &IpConfigData->StationAddress) ||\r
- !EFI_IP4_EQUAL (&Current->SubnetMask, &IpConfigData->SubnetMask))) {\r
+ (!EFI_IP4_EQUAL (&Current->StationAddress, &IpConfigData->StationAddress) ||\r
+ !EFI_IP4_EQUAL (&Current->SubnetMask, &IpConfigData->SubnetMask)))\r
+ {\r
Status = EFI_ALREADY_STARTED;\r
goto ON_EXIT;\r
}\r
ON_EXIT:\r
gBS->RestoreTPL (OldTpl);\r
return Status;\r
-\r
}\r
\r
-\r
/**\r
Change the IP4 child's multicast setting. The caller\r
should make sure that the parameters is valid.\r
**/\r
EFI_STATUS\r
Ip4Groups (\r
- IN IP4_PROTOCOL *IpInstance,\r
- IN BOOLEAN JoinFlag,\r
- IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL\r
+ IN IP4_PROTOCOL *IpInstance,\r
+ IN BOOLEAN JoinFlag,\r
+ IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL\r
)\r
{\r
- IP4_ADDR *Members;\r
- IP4_ADDR Group;\r
- UINT32 Index;\r
+ IP4_ADDR *Members;\r
+ IP4_ADDR Group;\r
+ UINT32 Index;\r
\r
//\r
// Add it to the instance's Groups, and join the group by IGMP.\r
// Must iterate from the end to the beginning because the GroupCount\r
// is decremented each time an address is removed..\r
//\r
- for (Index = IpInstance->GroupCount; Index > 0 ; Index--) {\r
+ for (Index = IpInstance->GroupCount; Index > 0; Index--) {\r
ASSERT (IpInstance->Groups != NULL);\r
Group = IpInstance->Groups[Index - 1];\r
if ((GroupAddress == NULL) || EFI_IP4_EQUAL (&Group, GroupAddress)) {\r
return ((GroupAddress != NULL) ? EFI_NOT_FOUND : EFI_SUCCESS);\r
}\r
\r
-\r
/**\r
Joins and leaves multicast groups.\r
\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Groups (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN BOOLEAN JoinFlag,\r
- IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN BOOLEAN JoinFlag,\r
+ IN EFI_IPv4_ADDRESS *GroupAddress OPTIONAL\r
)\r
{\r
- IP4_PROTOCOL *IpInstance;\r
- EFI_STATUS Status;\r
- EFI_TPL OldTpl;\r
- IP4_ADDR McastIp;\r
+ IP4_PROTOCOL *IpInstance;\r
+ EFI_STATUS Status;\r
+ EFI_TPL OldTpl;\r
+ IP4_ADDR McastIp;\r
\r
if ((This == NULL) || (JoinFlag && (GroupAddress == NULL))) {\r
return EFI_INVALID_PARAMETER;\r
return Status;\r
}\r
\r
-\r
/**\r
Adds and deletes routing table entries.\r
\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Routes (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN BOOLEAN DeleteRoute,\r
- IN EFI_IPv4_ADDRESS *SubnetAddress,\r
- IN EFI_IPv4_ADDRESS *SubnetMask,\r
- IN EFI_IPv4_ADDRESS *GatewayAddress\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN BOOLEAN DeleteRoute,\r
+ IN EFI_IPv4_ADDRESS *SubnetAddress,\r
+ IN EFI_IPv4_ADDRESS *SubnetMask,\r
+ IN EFI_IPv4_ADDRESS *GatewayAddress\r
)\r
{\r
- IP4_PROTOCOL *IpInstance;\r
- IP4_INTERFACE *IpIf;\r
- IP4_ADDR Dest;\r
- IP4_ADDR Netmask;\r
- IP4_ADDR Nexthop;\r
- EFI_STATUS Status;\r
- EFI_TPL OldTpl;\r
+ IP4_PROTOCOL *IpInstance;\r
+ IP4_INTERFACE *IpIf;\r
+ IP4_ADDR Dest;\r
+ IP4_ADDR Netmask;\r
+ IP4_ADDR Nexthop;\r
+ EFI_STATUS Status;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// First, validate the parameters\r
//\r
if ((This == NULL) || (SubnetAddress == NULL) ||\r
- (SubnetMask == NULL) || (GatewayAddress == NULL)) {\r
+ (SubnetMask == NULL) || (GatewayAddress == NULL))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
Netmask = NTOHL (Netmask);\r
Nexthop = NTOHL (Nexthop);\r
\r
- IpIf = IpInstance->Interface;\r
+ IpIf = IpInstance->Interface;\r
\r
if (!IP4_IS_VALID_NETMASK (Netmask)) {\r
Status = EFI_INVALID_PARAMETER;\r
// the gateway address must be a unicast on the connected network if not zero.\r
//\r
if ((Nexthop != IP4_ALLZERO_ADDRESS) &&\r
- ((IpIf->SubnetMask != IP4_ALLONE_ADDRESS && !IP4_NET_EQUAL (Nexthop, IpIf->Ip, IpIf->SubnetMask)) ||\r
- IP4_IS_BROADCAST (Ip4GetNetCast (Nexthop, IpIf)))) {\r
-\r
+ (((IpIf->SubnetMask != IP4_ALLONE_ADDRESS) && !IP4_NET_EQUAL (Nexthop, IpIf->Ip, IpIf->SubnetMask)) ||\r
+ IP4_IS_BROADCAST (Ip4GetNetCast (Nexthop, IpIf))))\r
+ {\r
Status = EFI_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r
return Status;\r
}\r
\r
-\r
/**\r
Check whether the user's token or event has already\r
been enqueued on IP4's list.\r
EFI_STATUS\r
EFIAPI\r
Ip4TokenExist (\r
- IN NET_MAP *Map,\r
- IN NET_MAP_ITEM *Item,\r
- IN VOID *Context\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Context\r
)\r
{\r
EFI_IP4_COMPLETION_TOKEN *Token;\r
EFI_IP4_COMPLETION_TOKEN *TokenInItem;\r
\r
- Token = (EFI_IP4_COMPLETION_TOKEN *) Context;\r
- TokenInItem = (EFI_IP4_COMPLETION_TOKEN *) Item->Key;\r
+ Token = (EFI_IP4_COMPLETION_TOKEN *)Context;\r
+ TokenInItem = (EFI_IP4_COMPLETION_TOKEN *)Item->Key;\r
\r
if ((Token == TokenInItem) || (Token->Event == TokenInItem->Event)) {\r
return EFI_ACCESS_DENIED;\r
**/\r
EFI_STATUS\r
Ip4TxTokenValid (\r
- IN EFI_IP4_COMPLETION_TOKEN *Token,\r
- IN IP4_INTERFACE *IpIf,\r
- IN BOOLEAN RawData\r
+ IN EFI_IP4_COMPLETION_TOKEN *Token,\r
+ IN IP4_INTERFACE *IpIf,\r
+ IN BOOLEAN RawData\r
)\r
{\r
- EFI_IP4_TRANSMIT_DATA *TxData;\r
- EFI_IP4_OVERRIDE_DATA *Override;\r
- IP4_ADDR Src;\r
- IP4_ADDR Gateway;\r
- UINT32 Offset;\r
- UINT32 Index;\r
- UINT32 HeadLen;\r
+ EFI_IP4_TRANSMIT_DATA *TxData;\r
+ EFI_IP4_OVERRIDE_DATA *Override;\r
+ IP4_ADDR Src;\r
+ IP4_ADDR Gateway;\r
+ UINT32 Offset;\r
+ UINT32 Index;\r
+ UINT32 HeadLen;\r
\r
if ((Token == NULL) || (Token->Event == NULL) || (Token->Packet.TxData == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
\r
for (Index = 0; Index < TxData->FragmentCount; Index++) {\r
if ((TxData->FragmentTable[Index].FragmentBuffer == NULL) ||\r
- (TxData->FragmentTable[Index].FragmentLength == 0)) {\r
-\r
+ (TxData->FragmentTable[Index].FragmentLength == 0))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
\r
if ((NetGetIpClass (Src) > IP4_ADDR_CLASSC) ||\r
(Src == IP4_ALLONE_ADDRESS) ||\r
- IP4_IS_BROADCAST (Ip4GetNetCast (Src, IpIf))) {\r
-\r
+ IP4_IS_BROADCAST (Ip4GetNetCast (Src, IpIf)))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
if ((Gateway != IP4_ALLZERO_ADDRESS) &&\r
((NetGetIpClass (Gateway) > IP4_ADDR_CLASSC) ||\r
!IP4_NET_EQUAL (Gateway, IpIf->Ip, IpIf->SubnetMask) ||\r
- IP4_IS_BROADCAST (Ip4GetNetCast (Gateway, IpIf)))) {\r
-\r
+ IP4_IS_BROADCAST (Ip4GetNetCast (Gateway, IpIf))))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
}\r
HeadLen = sizeof (IP4_HEAD) + ((TxData->OptionsLength + 3) &~0x03);\r
\r
if ((HeadLen > IP4_MAX_HEADLEN) ||\r
- (TxData->TotalDataLength + HeadLen > IP4_MAX_PACKET_SIZE)) {\r
-\r
+ (TxData->TotalDataLength + HeadLen > IP4_MAX_PACKET_SIZE))\r
+ {\r
return EFI_BAD_BUFFER_SIZE;\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
The callback function for the net buffer which wraps the user's\r
transmit token. Although it seems this function is pretty simple,\r
VOID\r
EFIAPI\r
Ip4FreeTxToken (\r
- IN VOID *Context\r
+ IN VOID *Context\r
)\r
{\r
- IP4_TXTOKEN_WRAP *Wrap;\r
- NET_MAP_ITEM *Item;\r
+ IP4_TXTOKEN_WRAP *Wrap;\r
+ NET_MAP_ITEM *Item;\r
\r
- Wrap = (IP4_TXTOKEN_WRAP *) Context;\r
+ Wrap = (IP4_TXTOKEN_WRAP *)Context;\r
\r
//\r
// Signal IpSecRecycleEvent to inform IPsec free the memory\r
FreePool (Wrap);\r
}\r
\r
-\r
/**\r
The callback function to Ip4Output to update the transmit status.\r
\r
**/\r
VOID\r
Ip4OnPacketSent (\r
- IP4_PROTOCOL *Ip4Instance,\r
- NET_BUF *Packet,\r
- EFI_STATUS IoStatus,\r
- UINT32 Flag,\r
- VOID *Context\r
+ IP4_PROTOCOL *Ip4Instance,\r
+ NET_BUF *Packet,\r
+ EFI_STATUS IoStatus,\r
+ UINT32 Flag,\r
+ VOID *Context\r
)\r
{\r
- IP4_TXTOKEN_WRAP *Wrap;\r
+ IP4_TXTOKEN_WRAP *Wrap;\r
\r
//\r
// This is the transmission request from upper layer,\r
// release when all the fragments are release. Check the comments\r
// in Ip4FreeTxToken and Ip4Output for information.\r
//\r
- Wrap = (IP4_TXTOKEN_WRAP *) Context;\r
+ Wrap = (IP4_TXTOKEN_WRAP *)Context;\r
Wrap->Token->Status = IoStatus;\r
\r
NetbufFree (Wrap->Packet);\r
}\r
\r
-\r
/**\r
Places outgoing data packets into the transmit queue.\r
\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Transmit (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN EFI_IP4_COMPLETION_TOKEN *Token\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN EFI_IP4_COMPLETION_TOKEN *Token\r
)\r
{\r
- IP4_SERVICE *IpSb;\r
- IP4_PROTOCOL *IpInstance;\r
- IP4_INTERFACE *IpIf;\r
- IP4_TXTOKEN_WRAP *Wrap;\r
- EFI_IP4_TRANSMIT_DATA *TxData;\r
- EFI_IP4_CONFIG_DATA *Config;\r
- EFI_IP4_OVERRIDE_DATA *Override;\r
- IP4_HEAD Head;\r
- IP4_ADDR GateWay;\r
- EFI_STATUS Status;\r
- EFI_TPL OldTpl;\r
- BOOLEAN DontFragment;\r
- UINT32 HeadLen;\r
- UINT8 RawHdrLen;\r
- UINT32 OptionsLength;\r
- UINT8 *OptionsBuffer;\r
- VOID *FirstFragment;\r
+ IP4_SERVICE *IpSb;\r
+ IP4_PROTOCOL *IpInstance;\r
+ IP4_INTERFACE *IpIf;\r
+ IP4_TXTOKEN_WRAP *Wrap;\r
+ EFI_IP4_TRANSMIT_DATA *TxData;\r
+ EFI_IP4_CONFIG_DATA *Config;\r
+ EFI_IP4_OVERRIDE_DATA *Override;\r
+ IP4_HEAD Head;\r
+ IP4_ADDR GateWay;\r
+ EFI_STATUS Status;\r
+ EFI_TPL OldTpl;\r
+ BOOLEAN DontFragment;\r
+ UINT32 HeadLen;\r
+ UINT8 RawHdrLen;\r
+ UINT32 OptionsLength;\r
+ UINT8 *OptionsBuffer;\r
+ VOID *FirstFragment;\r
\r
if (This == NULL) {\r
return EFI_INVALID_PARAMETER;\r
return EFI_NOT_STARTED;\r
}\r
\r
- OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
+ OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
\r
- IpSb = IpInstance->Service;\r
- IpIf = IpInstance->Interface;\r
- Config = &IpInstance->ConfigData;\r
+ IpSb = IpInstance->Service;\r
+ IpIf = IpInstance->Interface;\r
+ Config = &IpInstance->ConfigData;\r
\r
if (Config->UseDefaultAddress && IP4_NO_MAPPING (IpInstance)) {\r
Status = EFI_NO_MAPPING;\r
FirstFragment = TxData->FragmentTable[0].FragmentBuffer;\r
CopyMem (&RawHdrLen, FirstFragment, sizeof (UINT8));\r
\r
- RawHdrLen = (UINT8) (RawHdrLen & 0x0f);\r
+ RawHdrLen = (UINT8)(RawHdrLen & 0x0f);\r
if (RawHdrLen < 5) {\r
Status = EFI_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r
\r
- RawHdrLen = (UINT8) (RawHdrLen << 2);\r
+ RawHdrLen = (UINT8)(RawHdrLen << 2);\r
\r
CopyMem (&Head, FirstFragment, IP4_MIN_HEADLEN);\r
\r
OptionsBuffer = NULL;\r
} else {\r
OptionsLength = RawHdrLen - IP4_MIN_HEADLEN;\r
- OptionsBuffer = (UINT8 *) FirstFragment + IP4_MIN_HEADLEN;\r
+ OptionsBuffer = (UINT8 *)FirstFragment + IP4_MIN_HEADLEN;\r
}\r
\r
//\r
// Trim off IPv4 header and options from first fragment.\r
//\r
- TxData->FragmentTable[0].FragmentBuffer = (UINT8 *) FirstFragment + RawHdrLen;\r
+ TxData->FragmentTable[0].FragmentBuffer = (UINT8 *)FirstFragment + RawHdrLen;\r
TxData->FragmentTable[0].FragmentLength = TxData->FragmentTable[0].FragmentLength - RawHdrLen;\r
} else {\r
CopyMem (&Head.Dst, &TxData->DestinationAddress, sizeof (IP4_ADDR));\r
HeadLen = (TxData->OptionsLength + 3) & (~0x03);\r
\r
OptionsLength = TxData->OptionsLength;\r
- OptionsBuffer = (UINT8 *) (TxData->OptionsBuffer);\r
+ OptionsBuffer = (UINT8 *)(TxData->OptionsBuffer);\r
}\r
\r
//\r
goto ON_EXIT;\r
}\r
\r
- Wrap->IpInstance = IpInstance;\r
- Wrap->Token = Token;\r
- Wrap->Sent = FALSE;\r
- Wrap->Life = IP4_US_TO_SEC (Config->TransmitTimeout);\r
- Wrap->Packet = NetbufFromExt (\r
- (NET_FRAGMENT *) TxData->FragmentTable,\r
- TxData->FragmentCount,\r
- IP4_MAX_HEADLEN,\r
- 0,\r
- Ip4FreeTxToken,\r
- Wrap\r
- );\r
+ Wrap->IpInstance = IpInstance;\r
+ Wrap->Token = Token;\r
+ Wrap->Sent = FALSE;\r
+ Wrap->Life = IP4_US_TO_SEC (Config->TransmitTimeout);\r
+ Wrap->Packet = NetbufFromExt (\r
+ (NET_FRAGMENT *)TxData->FragmentTable,\r
+ TxData->FragmentCount,\r
+ IP4_MAX_HEADLEN,\r
+ 0,\r
+ Ip4FreeTxToken,\r
+ Wrap\r
+ );\r
\r
if (Wrap->Packet == NULL) {\r
FreePool (Wrap);\r
//\r
// Restore pointer of first fragment in RawData mode.\r
//\r
- TxData->FragmentTable[0].FragmentBuffer = (UINT8 *) FirstFragment;\r
+ TxData->FragmentTable[0].FragmentBuffer = (UINT8 *)FirstFragment;\r
}\r
\r
NetbufFree (Wrap->Packet);\r
//\r
// Restore pointer of first fragment in RawData mode.\r
//\r
- TxData->FragmentTable[0].FragmentBuffer = (UINT8 *) FirstFragment;\r
+ TxData->FragmentTable[0].FragmentBuffer = (UINT8 *)FirstFragment;\r
}\r
\r
NetbufFree (Wrap->Packet);\r
//\r
// Restore pointer of first fragment in RawData mode.\r
//\r
- TxData->FragmentTable[0].FragmentBuffer = (UINT8 *) FirstFragment;\r
+ TxData->FragmentTable[0].FragmentBuffer = (UINT8 *)FirstFragment;\r
}\r
\r
ON_EXIT:\r
return Status;\r
}\r
\r
-\r
/**\r
Places a receiving request into the receiving queue.\r
\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Receive (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN EFI_IP4_COMPLETION_TOKEN *Token\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN EFI_IP4_COMPLETION_TOKEN *Token\r
)\r
{\r
- IP4_PROTOCOL *IpInstance;\r
- EFI_STATUS Status;\r
- EFI_TPL OldTpl;\r
+ IP4_PROTOCOL *IpInstance;\r
+ EFI_STATUS Status;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// First validate the parameters\r
return Status;\r
}\r
\r
-\r
/**\r
Cancel the transmitted but not recycled packet. If a matching\r
token is found, it will call Ip4CancelPacket to cancel the\r
EFI_STATUS\r
EFIAPI\r
Ip4CancelTxTokens (\r
- IN NET_MAP *Map,\r
- IN NET_MAP_ITEM *Item,\r
- IN VOID *Context\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Context\r
)\r
{\r
EFI_IP4_COMPLETION_TOKEN *Token;\r
IP4_TXTOKEN_WRAP *Wrap;\r
\r
- Token = (EFI_IP4_COMPLETION_TOKEN *) Context;\r
+ Token = (EFI_IP4_COMPLETION_TOKEN *)Context;\r
\r
//\r
// Return EFI_SUCCESS to check the next item in the map if\r
return EFI_SUCCESS;\r
}\r
\r
- Wrap = (IP4_TXTOKEN_WRAP *) Item->Value;\r
+ Wrap = (IP4_TXTOKEN_WRAP *)Item->Value;\r
ASSERT (Wrap != NULL);\r
\r
//\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Cancel the receive request. This is quiet simple, because\r
it is only enqueued in our local receive map.\r
EFI_STATUS\r
EFIAPI\r
Ip4CancelRxTokens (\r
- IN NET_MAP *Map,\r
- IN NET_MAP_ITEM *Item,\r
- IN VOID *Context\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Context\r
)\r
{\r
EFI_IP4_COMPLETION_TOKEN *Token;\r
EFI_IP4_COMPLETION_TOKEN *This;\r
\r
- Token = (EFI_IP4_COMPLETION_TOKEN *) Context;\r
+ Token = (EFI_IP4_COMPLETION_TOKEN *)Context;\r
This = Item->Key;\r
\r
if ((Token != NULL) && (Token != This)) {\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Cancel the user's receive/transmit request.\r
\r
**/\r
EFI_STATUS\r
Ip4Cancel (\r
- IN IP4_PROTOCOL *IpInstance,\r
- IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL\r
+ IN IP4_PROTOCOL *IpInstance,\r
+ IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// First check the transmitted packet. Ip4CancelTxTokens returns\r
// all of them are cancelled.\r
//\r
if (!NetMapIsEmpty (&IpInstance->TxTokens) ||\r
- !NetMapIsEmpty (&IpInstance->RxTokens)) {\r
-\r
+ !NetMapIsEmpty (&IpInstance->RxTokens))\r
+ {\r
return EFI_DEVICE_ERROR;\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Abort an asynchronous transmit or receive request.\r
\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Cancel (\r
- IN EFI_IP4_PROTOCOL *This,\r
- IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL\r
+ IN EFI_IP4_PROTOCOL *This,\r
+ IN EFI_IP4_COMPLETION_TOKEN *Token OPTIONAL\r
)\r
{\r
- IP4_PROTOCOL *IpInstance;\r
- EFI_STATUS Status;\r
- EFI_TPL OldTpl;\r
+ IP4_PROTOCOL *IpInstance;\r
+ EFI_STATUS Status;\r
+ EFI_TPL OldTpl;\r
\r
if (This == NULL) {\r
return EFI_INVALID_PARAMETER;\r
return Status;\r
}\r
\r
-\r
/**\r
Polls for incoming data packets and processes outgoing data packets.\r
\r
EFI_STATUS\r
EFIAPI\r
EfiIp4Poll (\r
- IN EFI_IP4_PROTOCOL *This\r
+ IN EFI_IP4_PROTOCOL *This\r
)\r
{\r
IP4_PROTOCOL *IpInstance;\r
EFI_STATUS\r
EFIAPI\r
Ip4SentPacketTicking (\r
- IN NET_MAP *Map,\r
- IN NET_MAP_ITEM *Item,\r
- IN VOID *Context\r
+ IN NET_MAP *Map,\r
+ IN NET_MAP_ITEM *Item,\r
+ IN VOID *Context\r
)\r
{\r
- IP4_TXTOKEN_WRAP *Wrap;\r
+ IP4_TXTOKEN_WRAP *Wrap;\r
\r
- Wrap = (IP4_TXTOKEN_WRAP *) Item->Value;\r
+ Wrap = (IP4_TXTOKEN_WRAP *)Item->Value;\r
ASSERT (Wrap != NULL);\r
\r
if ((Wrap->Life > 0) && (--Wrap->Life == 0)) {\r
VOID\r
EFIAPI\r
Ip4TimerTicking (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
- IP4_SERVICE *IpSb;\r
+ IP4_SERVICE *IpSb;\r
\r
- IpSb = (IP4_SERVICE *) Context;\r
+ IpSb = (IP4_SERVICE *)Context;\r
NET_CHECK_SIGNATURE (IpSb, IP4_SERVICE_SIGNATURE);\r
\r
Ip4PacketTimerTicking (IpSb);\r
VOID\r
EFIAPI\r
Ip4TimerReconfigChecking (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
- IP4_SERVICE *IpSb;\r
- BOOLEAN OldMediaPresent;\r
- EFI_STATUS Status;\r
- EFI_SIMPLE_NETWORK_MODE SnpModeData;\r
+ IP4_SERVICE *IpSb;\r
+ BOOLEAN OldMediaPresent;\r
+ EFI_STATUS Status;\r
+ EFI_SIMPLE_NETWORK_MODE SnpModeData;\r
\r
- IpSb = (IP4_SERVICE *) Context;\r
+ IpSb = (IP4_SERVICE *)Context;\r
NET_CHECK_SIGNATURE (IpSb, IP4_SERVICE_SIGNATURE);\r
\r
OldMediaPresent = IpSb->MediaPresent;\r