]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Impl.c
Use Mde library and definition instead of some native definitions in NetLib, to simpl...
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Ip4Dxe / Ip4Impl.c
index 04ca79578f0be8c3388addcbd01be20cdfa8c8e2..d1302acaa3b256fd0e7530aec045ad16eb1cf541 100644 (file)
@@ -57,7 +57,7 @@ EfiIp4GetModeData (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  OldTpl     = NET_RAISE_TPL (NET_TPL_LOCK);\r
+  OldTpl     = gBS->RaiseTPL (TPL_CALLBACK);\r
   IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);\r
   IpSb       = IpInstance->Service;\r
 \r
@@ -89,10 +89,10 @@ EfiIp4GetModeData (
       Config  = &Ip4ModeData->ConfigData;\r
 \r
       Ip = HTONL (IpInstance->Interface->Ip);\r
-      NetCopyMem (&Config->StationAddress, &Ip, sizeof (EFI_IPv4_ADDRESS));\r
+      CopyMem (&Config->StationAddress, &Ip, sizeof (EFI_IPv4_ADDRESS));\r
 \r
       Ip = HTONL (IpInstance->Interface->SubnetMask);\r
-      NetCopyMem (&Config->SubnetMask, &Ip, sizeof (EFI_IPv4_ADDRESS));\r
+      CopyMem (&Config->SubnetMask, &Ip, sizeof (EFI_IPv4_ADDRESS));\r
 \r
       Ip4ModeData->IsConfigured = IpInstance->Interface->Configured;\r
 \r
@@ -102,7 +102,7 @@ EfiIp4GetModeData (
       Status = Ip4BuildEfiRouteTable (IpInstance);\r
 \r
       if (EFI_ERROR (Status)) {\r
-        NET_RESTORE_TPL (OldTpl);\r
+        gBS->RestoreTPL (OldTpl);\r
         return Status;\r
       }\r
 \r
@@ -119,7 +119,7 @@ EfiIp4GetModeData (
     CopyMem (SnpModeData, &IpSb->SnpMode, sizeof (*SnpModeData));\r
   }\r
 \r
-  NET_RESTORE_TPL (OldTpl);\r
+  gBS->RestoreTPL (OldTpl);\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -148,8 +148,8 @@ Ip4ServiceConfigMnp (
   IN BOOLEAN                Force\r
   )\r
 {\r
-  NET_LIST_ENTRY            *Entry;\r
-  NET_LIST_ENTRY            *ProtoEntry;\r
+  LIST_ENTRY                *Entry;\r
+  LIST_ENTRY                *ProtoEntry;\r
   IP4_INTERFACE             *IpIf;\r
   IP4_PROTOCOL              *IpInstance;\r
   BOOLEAN                   Reconfig;\r
@@ -271,7 +271,7 @@ Ip4AutoConfigCallBackDpc (
       Ip4FreeRouteTable (IpSb->DefaultRouteTable);\r
 \r
       IpSb->DefaultInterface  = IpIf;\r
-      NetListInsertHead (&IpSb->Interfaces, &IpIf->Link);\r
+      InsertHeadList (&IpSb->Interfaces, &IpIf->Link);\r
 \r
       IpSb->DefaultRouteTable = RouteTable;\r
       Ip4ReceiveFrame (IpIf, NULL, Ip4AccpetFrame, IpSb);\r
@@ -291,7 +291,7 @@ Ip4AutoConfigCallBackDpc (
     return ;\r
   }\r
 \r
-  Data = NetAllocatePool (Len);\r
+  Data = AllocatePool (Len);\r
 \r
   if (Data == NULL) {\r
     return ;\r
@@ -355,7 +355,7 @@ Ip4AutoConfigCallBackDpc (
   Ip4SetVariableData (IpSb);\r
 \r
 ON_EXIT:\r
-  NetFreePool (Data);\r
+  gBS->FreePool (Data);\r
 }\r
 \r
 VOID\r
@@ -421,7 +421,7 @@ Ip4StartAutoConfig (
   //\r
   Status = gBS->CreateEvent (\r
                   EVT_NOTIFY_SIGNAL,\r
-                  NET_TPL_LOCK,\r
+                  TPL_CALLBACK,\r
                   Ip4AutoConfigCallBack,\r
                   IpSb,\r
                   &IpSb->DoneEvent\r
@@ -433,7 +433,7 @@ Ip4StartAutoConfig (
 \r
   Status = gBS->CreateEvent (\r
                   EVT_NOTIFY_SIGNAL,\r
-                  NET_TPL_EVENT,\r
+                  TPL_NOTIFY,\r
                   Ip4AutoConfigCallBack,\r
                   IpSb,\r
                   &IpSb->ReconfigEvent\r
@@ -506,21 +506,21 @@ Ip4InitProtocol (
 {\r
   ASSERT ((IpSb != NULL) && (IpInstance != NULL));\r
 \r
-  NetZeroMem (IpInstance, sizeof (IP4_PROTOCOL));\r
+  ZeroMem (IpInstance, sizeof (IP4_PROTOCOL));\r
 \r
   IpInstance->Signature = IP4_PROTOCOL_SIGNATURE;\r
   CopyMem (&IpInstance->Ip4Proto, &mEfiIp4ProtocolTemplete, sizeof (IpInstance->Ip4Proto));\r
   IpInstance->State     = IP4_STATE_UNCONFIGED;\r
   IpInstance->Service   = IpSb;\r
 \r
-  NetListInit (&IpInstance->Link);\r
+  InitializeListHead (&IpInstance->Link);\r
   NetMapInit  (&IpInstance->RxTokens);\r
   NetMapInit  (&IpInstance->TxTokens);\r
-  NetListInit (&IpInstance->Received);\r
-  NetListInit (&IpInstance->Delivered);\r
-  NetListInit (&IpInstance->AddrLink);\r
+  InitializeListHead (&IpInstance->Received);\r
+  InitializeListHead (&IpInstance->Delivered);\r
+  InitializeListHead (&IpInstance->AddrLink);\r
 \r
-  NET_RECYCLE_LOCK_INIT (&IpInstance->RecycleLock);\r
+  EfiInitializeLock (&IpInstance->RecycleLock, TPL_NOTIFY);\r
 }\r
 \r
 \r
@@ -589,8 +589,8 @@ Ip4ConfigProtocol (
   //\r
   // Set up the interface.\r
   //\r
-  NetCopyMem (&Ip, &Config->StationAddress, sizeof (IP4_ADDR));\r
-  NetCopyMem (&Netmask, &Config->SubnetMask, sizeof (IP4_ADDR));\r
+  CopyMem (&Ip, &Config->StationAddress, sizeof (IP4_ADDR));\r
+  CopyMem (&Netmask, &Config->SubnetMask, sizeof (IP4_ADDR));\r
 \r
   Ip      = NTOHL (Ip);\r
   Netmask = NTOHL (Netmask);\r
@@ -621,7 +621,7 @@ Ip4ConfigProtocol (
         goto ON_ERROR;\r
       }\r
 \r
-      NetListInsertTail (&IpSb->Interfaces, &IpIf->Link);\r
+      InsertTailList (&IpSb->Interfaces, &IpIf->Link);\r
     }\r
 \r
     //\r
@@ -657,7 +657,7 @@ Ip4ConfigProtocol (
   }\r
 \r
   IpInstance->Interface = IpIf;\r
-  NetListInsertTail (&IpIf->IpInstances, &IpInstance->AddrLink);\r
+  InsertTailList (&IpIf->IpInstances, &IpInstance->AddrLink);\r
 \r
   CopyMem (&IpInstance->ConfigData, Config, sizeof (IpInstance->ConfigData));\r
   IpInstance->State       = IP4_STATE_CONFIGED;\r
@@ -707,12 +707,12 @@ Ip4CleanProtocol (
   // user forgets to recycle the packets, or because the callback\r
   // hasn't been called. Just leave it alone.\r
   //\r
-  if (!NetListIsEmpty (&IpInstance->Delivered)) {\r
+  if (!IsListEmpty (&IpInstance->Delivered)) {\r
     ;\r
   }\r
 \r
   if (IpInstance->Interface != NULL) {\r
-    NetListRemoveEntry (&IpInstance->AddrLink);\r
+    RemoveEntryList (&IpInstance->AddrLink);\r
     Ip4FreeInterface (IpInstance->Interface, IpInstance);\r
     IpInstance->Interface = NULL;\r
   }\r
@@ -727,13 +727,13 @@ Ip4CleanProtocol (
   }\r
 \r
   if (IpInstance->EfiRouteTable != NULL) {\r
-    NetFreePool (IpInstance->EfiRouteTable);\r
+    gBS->FreePool (IpInstance->EfiRouteTable);\r
     IpInstance->EfiRouteTable = NULL;\r
     IpInstance->EfiRouteCount = 0;\r
   }\r
 \r
   if (IpInstance->Groups != NULL) {\r
-    NetFreePool (IpInstance->Groups);\r
+    gBS->FreePool (IpInstance->Groups);\r
     IpInstance->Groups      = NULL;\r
     IpInstance->GroupCount  = 0;\r
   }\r
@@ -845,7 +845,7 @@ EfiIp4Configure (
   }\r
 \r
   IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);\r
-  OldTpl     = NET_RAISE_TPL (NET_TPL_LOCK);\r
+  OldTpl     = gBS->RaiseTPL (TPL_CALLBACK);\r
 \r
   //\r
   // Validate the configuration first.\r
@@ -860,8 +860,8 @@ EfiIp4Configure (
     }\r
 \r
 \r
-    NetCopyMem (&IpAddress, &IpConfigData->StationAddress, sizeof (IP4_ADDR));\r
-    NetCopyMem (&SubnetMask, &IpConfigData->SubnetMask, sizeof (IP4_ADDR));\r
+    CopyMem (&IpAddress, &IpConfigData->StationAddress, sizeof (IP4_ADDR));\r
+    CopyMem (&SubnetMask, &IpConfigData->SubnetMask, sizeof (IP4_ADDR));\r
 \r
     IpAddress  = NTOHL (IpAddress);\r
     SubnetMask = NTOHL (SubnetMask);\r
@@ -935,7 +935,7 @@ EfiIp4Configure (
   Ip4SetVariableData (IpInstance->Service);\r
 \r
 ON_EXIT:\r
-  NET_RESTORE_TPL (OldTpl);\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 \r
 }\r
@@ -973,7 +973,7 @@ Ip4Groups (
   // host byte order\r
   //\r
   if (JoinFlag) {\r
-    NetCopyMem (&Group, GroupAddress, sizeof (IP4_ADDR));\r
+    CopyMem (&Group, GroupAddress, sizeof (IP4_ADDR));\r
 \r
     for (Index = 0; Index < IpInstance->GroupCount; Index++) {\r
       if (IpInstance->Groups[Index] == Group) {\r
@@ -988,12 +988,12 @@ Ip4Groups (
     }\r
 \r
     if (EFI_ERROR (Ip4JoinGroup (IpInstance, NTOHL (Group)))) {\r
-      NetFreePool (Members);\r
+      gBS->FreePool (Members);\r
       return EFI_DEVICE_ERROR;\r
     }\r
 \r
     if (IpInstance->Groups != NULL) {\r
-      NetFreePool (IpInstance->Groups);\r
+      gBS->FreePool (IpInstance->Groups);\r
     }\r
 \r
     IpInstance->Groups = Members;\r
@@ -1021,7 +1021,7 @@ Ip4Groups (
       if (IpInstance->GroupCount == 0) {\r
         ASSERT (Index == 1);\r
 \r
-        NetFreePool (IpInstance->Groups);\r
+        gBS->FreePool (IpInstance->Groups);\r
         IpInstance->Groups = NULL;\r
       }\r
 \r
@@ -1069,7 +1069,7 @@ EfiIp4Groups (
   }\r
 \r
   if (GroupAddress != NULL) {\r
-    NetCopyMem (&McastIp, GroupAddress, sizeof (IP4_ADDR));\r
+    CopyMem (&McastIp, GroupAddress, sizeof (IP4_ADDR));\r
 \r
     if (!IP4_IS_MULTICAST (NTOHL (McastIp))) {\r
       return EFI_INVALID_PARAMETER;\r
@@ -1077,7 +1077,7 @@ EfiIp4Groups (
   }\r
 \r
   IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);\r
-  OldTpl     = NET_RAISE_TPL (NET_TPL_LOCK);\r
+  OldTpl     = gBS->RaiseTPL (TPL_CALLBACK);\r
 \r
   if (IpInstance->State != IP4_STATE_CONFIGED) {\r
     Status = EFI_NOT_STARTED;\r
@@ -1092,7 +1092,7 @@ EfiIp4Groups (
   Status = Ip4Groups (IpInstance, JoinFlag, GroupAddress);\r
 \r
 ON_EXIT:\r
-  NET_RESTORE_TPL (OldTpl);\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r
@@ -1140,7 +1140,7 @@ EfiIp4Routes (
   }\r
 \r
   IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);\r
-  OldTpl     = NET_RAISE_TPL (NET_TPL_LOCK);\r
+  OldTpl     = gBS->RaiseTPL (TPL_CALLBACK);\r
 \r
   if (IpInstance->State != IP4_STATE_CONFIGED) {\r
     Status = EFI_NOT_STARTED;\r
@@ -1152,9 +1152,9 @@ EfiIp4Routes (
     goto ON_EXIT;\r
   }\r
 \r
-  NetCopyMem (&Dest, SubnetAddress, sizeof (IP4_ADDR));\r
-  NetCopyMem (&Netmask, SubnetMask, sizeof (IP4_ADDR));\r
-  NetCopyMem (&Nexthop, GatewayAddress, sizeof (IP4_ADDR));\r
+  CopyMem (&Dest, SubnetAddress, sizeof (IP4_ADDR));\r
+  CopyMem (&Netmask, SubnetMask, sizeof (IP4_ADDR));\r
+  CopyMem (&Nexthop, GatewayAddress, sizeof (IP4_ADDR));\r
 \r
   Dest    = NTOHL (Dest);\r
   Netmask = NTOHL (Netmask);\r
@@ -1185,7 +1185,7 @@ EfiIp4Routes (
   }\r
 \r
 ON_EXIT:\r
-  NET_RESTORE_TPL (OldTpl);\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r
@@ -1301,8 +1301,8 @@ Ip4TxTokenValid (
   if (TxData->OverrideData) {\r
     Override = TxData->OverrideData;\r
 \r
-    NetCopyMem (&Src, &Override->SourceAddress, sizeof (IP4_ADDR));\r
-    NetCopyMem (&Gateway, &Override->GatewayAddress, sizeof (IP4_ADDR));\r
+    CopyMem (&Src, &Override->SourceAddress, sizeof (IP4_ADDR));\r
+    CopyMem (&Gateway, &Override->GatewayAddress, sizeof (IP4_ADDR));\r
 \r
     Src     = NTOHL (Src);\r
     Gateway = NTOHL (Gateway);\r
@@ -1395,7 +1395,7 @@ Ip4FreeTxToken (
     NetLibDispatchDpc ();\r
   }\r
 \r
-  NetFreePool (Wrap);\r
+  gBS->FreePool (Wrap);\r
 }\r
 \r
 \r
@@ -1490,7 +1490,7 @@ EfiIp4Transmit (
     return EFI_NOT_STARTED;\r
   }\r
 \r
-  OldTpl  = NET_RAISE_TPL (NET_TPL_LOCK);\r
+  OldTpl  = gBS->RaiseTPL (TPL_CALLBACK);\r
 \r
   IpSb    = IpInstance->Service;\r
   IpIf    = IpInstance->Interface;\r
@@ -1524,7 +1524,7 @@ EfiIp4Transmit (
   //\r
   TxData = Token->Packet.TxData;\r
 \r
-  NetCopyMem (&Head.Dst, &TxData->DestinationAddress, sizeof (IP4_ADDR));\r
+  CopyMem (&Head.Dst, &TxData->DestinationAddress, sizeof (IP4_ADDR));\r
   Head.Dst = NTOHL (Head.Dst);\r
 \r
   if (TxData->OverrideData) {\r
@@ -1534,8 +1534,8 @@ EfiIp4Transmit (
     Head.Ttl      = Override->TimeToLive;\r
     DontFragment  = Override->DoNotFragment;\r
 \r
-    NetCopyMem (&Head.Src, &Override->SourceAddress, sizeof (IP4_ADDR));\r
-    NetCopyMem (&GateWay, &Override->GatewayAddress, sizeof (IP4_ADDR));\r
+    CopyMem (&Head.Src, &Override->SourceAddress, sizeof (IP4_ADDR));\r
+    CopyMem (&GateWay, &Override->GatewayAddress, sizeof (IP4_ADDR));\r
 \r
     Head.Src = NTOHL (Head.Src);\r
     GateWay  = NTOHL (GateWay);\r
@@ -1564,7 +1564,7 @@ EfiIp4Transmit (
   // a IP4_TXTOKEN_WRAP and the data in a netbuf\r
   //\r
   Status = EFI_OUT_OF_RESOURCES;\r
-  Wrap   = NetAllocatePool (sizeof (IP4_TXTOKEN_WRAP));\r
+  Wrap   = AllocatePool (sizeof (IP4_TXTOKEN_WRAP));\r
   if (Wrap == NULL) {\r
     goto ON_EXIT;\r
   }\r
@@ -1583,7 +1583,7 @@ EfiIp4Transmit (
                         );\r
 \r
   if (Wrap->Packet == NULL) {\r
-    NetFreePool (Wrap);\r
+    gBS->FreePool (Wrap);\r
     goto ON_EXIT;\r
   }\r
 \r
@@ -1623,7 +1623,7 @@ EfiIp4Transmit (
   }\r
 \r
 ON_EXIT:\r
-  NET_RESTORE_TPL (OldTpl);\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r
@@ -1665,25 +1665,13 @@ EfiIp4Receive (
 \r
   IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);\r
 \r
-  OldTpl = NET_RAISE_TPL (NET_TPL_LOCK);\r
+  OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
 \r
   if (IpInstance->State != IP4_STATE_CONFIGED) {\r
     Status = EFI_NOT_STARTED;\r
     goto ON_EXIT;\r
   }\r
 \r
-  //\r
-  // Current Udp implementation creates an IP child for each Udp child.\r
-  // It initates a asynchronous receive immediately no matter whether\r
-  // there is no mapping or not. Disable this for now.\r
-  //\r
-#if 0\r
-  if (Config->UseDefaultAddress && IP4_NO_MAPPING (IpInstance)) {\r
-    Status = EFI_NO_MAPPING;\r
-    goto ON_EXIT;\r
-  }\r
-#endif\r
-\r
   //\r
   // Check whether the toke is already on the receive queue.\r
   //\r
@@ -1712,7 +1700,7 @@ EfiIp4Receive (
   NetLibDispatchDpc ();\r
 \r
 ON_EXIT:\r
-  NET_RESTORE_TPL (OldTpl);\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r
@@ -1931,7 +1919,7 @@ EfiIp4Cancel (
 \r
   IpInstance = IP4_INSTANCE_FROM_PROTOCOL (This);\r
 \r
-  OldTpl = NET_RAISE_TPL (NET_TPL_LOCK);\r
+  OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
 \r
   if (IpInstance->State != IP4_STATE_CONFIGED) {\r
     Status = EFI_NOT_STARTED;\r
@@ -1946,7 +1934,7 @@ EfiIp4Cancel (
   Status = Ip4Cancel (IpInstance, Token);\r
 \r
 ON_EXIT:\r
-  NET_RESTORE_TPL (OldTpl);\r
+  gBS->RestoreTPL (OldTpl);\r
   return Status;\r
 }\r
 \r