]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Ip4Dxe/Ip4If.c
Scrubbed more.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Ip4Dxe / Ip4If.c
index eaed123b84cf54c7d0b5193832373eccdce5e4e8..dfd58406c2d302a0d3b343810e6c90c98a13557a 100644 (file)
@@ -27,16 +27,14 @@ Abstract:
 // Mac address with all zero, used to determine whethter the ARP\r
 // resolve succeeded. Failed ARP requests zero the MAC address buffer.\r
 //\r
-STATIC EFI_MAC_ADDRESS  mZeroMacAddress;\r
+EFI_MAC_ADDRESS  mZeroMacAddress;\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnFrameSentDpc (\r
   IN VOID                   *Context\r
   );\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnFrameSent (\r
@@ -44,14 +42,12 @@ Ip4OnFrameSent (
   IN VOID                   *Context\r
   );\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnArpResolvedDpc (\r
   IN VOID                   *Context\r
   );\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnArpResolved (\r
@@ -59,14 +55,12 @@ Ip4OnArpResolved (
   IN VOID                   *Context\r
   );\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnFrameReceivedDpc (\r
   IN VOID                   *Context\r
   );\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnFrameReceived (\r
@@ -74,7 +68,6 @@ Ip4OnFrameReceived (
   IN VOID                   *Context\r
   );\r
 \r
-STATIC\r
 VOID\r
 Ip4CancelFrameArp (\r
   IN IP4_ARP_QUE            *ArpQue,\r
@@ -87,7 +80,7 @@ Ip4CancelFrameArp (
 /**\r
   Wrap a transmit request into a newly allocated IP4_LINK_TX_TOKEN.\r
 \r
-  @param  Interface             The interface to send out from\r
+  @param  Interface             The interface to send out to.\r
   @param  IpInstance            The IpInstance that transmit the packet.  NULL if\r
                                 the packet is sent by the IP4 driver itself.\r
   @param  Packet                The packet to transmit\r
@@ -98,7 +91,6 @@ Ip4CancelFrameArp (
   @return The wrapped token if succeed or NULL\r
 \r
 **/\r
-STATIC\r
 IP4_LINK_TX_TOKEN *\r
 Ip4WrapLinkTxToken (\r
   IN IP4_INTERFACE          *Interface,\r
@@ -114,7 +106,7 @@ Ip4WrapLinkTxToken (
   EFI_STATUS                            Status;\r
   UINT32                                Count;\r
 \r
-  Token = NetAllocatePool (sizeof (IP4_LINK_TX_TOKEN) + \\r
+  Token = AllocatePool (sizeof (IP4_LINK_TX_TOKEN) + \\r
             (Packet->BlockOpNum - 1) * sizeof (EFI_MANAGED_NETWORK_FRAGMENT_DATA));\r
 \r
   if (Token == NULL) {\r
@@ -122,7 +114,7 @@ Ip4WrapLinkTxToken (
   }\r
 \r
   Token->Signature = IP4_FRAME_TX_SIGNATURE;\r
-  NetListInit (&Token->Link);\r
+  InitializeListHead (&Token->Link);\r
 \r
   Token->Interface  = Interface;\r
   Token->IpInstance = IpInstance;\r
@@ -137,14 +129,14 @@ Ip4WrapLinkTxToken (
 \r
   Status = gBS->CreateEvent (\r
                   EVT_NOTIFY_SIGNAL,\r
-                  NET_TPL_EVENT,\r
+                  TPL_NOTIFY,\r
                   Ip4OnFrameSent,\r
                   Token,\r
                   &MnpToken->Event\r
                   );\r
 \r
   if (EFI_ERROR (Status)) {\r
-    NetFreePool (Token);\r
+    gBS->FreePool (Token);\r
     return NULL;\r
   }\r
 \r
@@ -175,7 +167,6 @@ Ip4WrapLinkTxToken (
   @return NONE\r
 \r
 **/\r
-STATIC\r
 VOID\r
 Ip4FreeLinkTxToken (\r
   IN IP4_LINK_TX_TOKEN      *Token\r
@@ -184,7 +175,7 @@ Ip4FreeLinkTxToken (
   NET_CHECK_SIGNATURE (Token, IP4_FRAME_TX_SIGNATURE);\r
 \r
   gBS->CloseEvent (Token->MnpToken.Event);\r
-  NetFreePool (Token);\r
+  gBS->FreePool (Token);\r
 }\r
 \r
 \r
@@ -198,7 +189,6 @@ Ip4FreeLinkTxToken (
   @return Point to newly created IP4_ARP_QUE if succeed, otherwise NULL.\r
 \r
 **/\r
-STATIC\r
 IP4_ARP_QUE *\r
 Ip4CreateArpQue (\r
   IN IP4_INTERFACE          *Interface,\r
@@ -208,28 +198,28 @@ Ip4CreateArpQue (
   IP4_ARP_QUE               *ArpQue;\r
   EFI_STATUS                Status;\r
 \r
-  ArpQue = NetAllocatePool (sizeof (IP4_ARP_QUE));\r
+  ArpQue = AllocatePool (sizeof (IP4_ARP_QUE));\r
 \r
   if (ArpQue == NULL) {\r
     return NULL;\r
   }\r
 \r
   ArpQue->Signature = IP4_FRAME_ARP_SIGNATURE;\r
-  NetListInit (&ArpQue->Link);\r
+  InitializeListHead (&ArpQue->Link);\r
 \r
-  NetListInit (&ArpQue->Frames);\r
+  InitializeListHead (&ArpQue->Frames);\r
   ArpQue->Interface = Interface;\r
 \r
   Status = gBS->CreateEvent (\r
                   EVT_NOTIFY_SIGNAL,\r
-                  NET_TPL_EVENT,\r
+                  TPL_NOTIFY,\r
                   Ip4OnArpResolved,\r
                   ArpQue,\r
                   &ArpQue->OnResolved\r
                   );\r
 \r
   if (EFI_ERROR (Status)) {\r
-    NetFreePool (ArpQue);\r
+    gBS->FreePool (ArpQue);\r
     return NULL;\r
   }\r
 \r
@@ -250,7 +240,6 @@ Ip4CreateArpQue (
   @return NONE\r
 \r
 **/\r
-STATIC\r
 VOID\r
 Ip4FreeArpQue (\r
   IN IP4_ARP_QUE            *ArpQue,\r
@@ -265,7 +254,7 @@ Ip4FreeArpQue (
   Ip4CancelFrameArp (ArpQue, IoStatus, NULL, NULL);\r
 \r
   gBS->CloseEvent (ArpQue->OnResolved);\r
-  NetFreePool (ArpQue);\r
+  gBS->FreePool (ArpQue);\r
 }\r
 \r
 \r
@@ -281,7 +270,6 @@ Ip4FreeArpQue (
   @return Point to created IP4_LINK_RX_TOKEN if succeed, otherwise NULL.\r
 \r
 **/\r
-STATIC\r
 IP4_LINK_RX_TOKEN *\r
 Ip4CreateLinkRxToken (\r
   IN IP4_INTERFACE          *Interface,\r
@@ -294,7 +282,7 @@ Ip4CreateLinkRxToken (
   IP4_LINK_RX_TOKEN                     *Token;\r
   EFI_STATUS                            Status;\r
 \r
-  Token = NetAllocatePool (sizeof (IP4_LINK_RX_TOKEN));\r
+  Token = AllocatePool (sizeof (IP4_LINK_RX_TOKEN));\r
   if (Token == NULL) {\r
     return NULL;\r
   }\r
@@ -310,14 +298,14 @@ Ip4CreateLinkRxToken (
 \r
   Status = gBS->CreateEvent (\r
                   EVT_NOTIFY_SIGNAL,\r
-                  NET_TPL_EVENT,\r
+                  TPL_NOTIFY,\r
                   Ip4OnFrameReceived,\r
                   Token,\r
                   &MnpToken->Event\r
                   );\r
 \r
   if (EFI_ERROR (Status)) {\r
-    NetFreePool (Token);\r
+    gBS->FreePool (Token);\r
     return NULL;\r
   }\r
 \r
@@ -335,7 +323,6 @@ Ip4CreateLinkRxToken (
   @return NONE\r
 \r
 **/\r
-STATIC\r
 VOID\r
 Ip4FreeFrameRxToken (\r
   IN IP4_LINK_RX_TOKEN      *Token\r
@@ -345,7 +332,7 @@ Ip4FreeFrameRxToken (
   NET_CHECK_SIGNATURE (Token, IP4_FRAME_RX_SIGNATURE);\r
 \r
   gBS->CloseEvent (Token->MnpToken.Event);\r
-  NetFreePool (Token);\r
+  gBS->FreePool (Token);\r
 }\r
 \r
 \r
@@ -362,7 +349,6 @@ Ip4FreeFrameRxToken (
   @return NONE\r
 \r
 **/\r
-STATIC\r
 VOID\r
 Ip4CancelFrameArp (\r
   IN IP4_ARP_QUE            *ArpQue,\r
@@ -371,15 +357,15 @@ Ip4CancelFrameArp (
   IN VOID                   *Context\r
   )\r
 {\r
-  NET_LIST_ENTRY            *Entry;\r
-  NET_LIST_ENTRY            *Next;\r
+  LIST_ENTRY                *Entry;\r
+  LIST_ENTRY                *Next;\r
   IP4_LINK_TX_TOKEN         *Token;\r
 \r
   NET_LIST_FOR_EACH_SAFE (Entry, Next, &ArpQue->Frames) {\r
     Token = NET_LIST_USER_STRUCT (Entry, IP4_LINK_TX_TOKEN, Link);\r
 \r
     if ((FrameToCancel == NULL) || FrameToCancel (Token, Context)) {\r
-      NetListRemoveEntry (Entry);\r
+      RemoveEntryList (Entry);\r
 \r
       Token->CallBack (Token->IpInstance, Token->Packet, IoStatus, 0, Token->Context);\r
       Ip4FreeLinkTxToken (Token);\r
@@ -411,8 +397,8 @@ Ip4CancelFrames (
   IN VOID                   *Context\r
   )\r
 {\r
-  NET_LIST_ENTRY            *Entry;\r
-  NET_LIST_ENTRY            *Next;\r
+  LIST_ENTRY                *Entry;\r
+  LIST_ENTRY                *Next;\r
   IP4_ARP_QUE               *ArpQue;\r
   IP4_LINK_TX_TOKEN         *Token;\r
 \r
@@ -424,7 +410,7 @@ Ip4CancelFrames (
 \r
     Ip4CancelFrameArp (ArpQue, IoStatus, FrameToCancel, Context);\r
 \r
-    if (NetListIsEmpty (&ArpQue->Frames)) {\r
+    if (IsListEmpty (&ArpQue->Frames)) {\r
       Interface->Arp->Cancel (Interface->Arp, &ArpQue->Ip, ArpQue->OnResolved);\r
     }\r
   }\r
@@ -466,14 +452,14 @@ Ip4CreateInterface (
   IP4_INTERFACE             *Interface;\r
   EFI_SIMPLE_NETWORK_MODE   SnpMode;\r
 \r
-  Interface = NetAllocatePool (sizeof (IP4_INTERFACE));\r
+  Interface = AllocatePool (sizeof (IP4_INTERFACE));\r
 \r
   if ((Interface == NULL) || (Mnp == NULL)) {\r
     return NULL;\r
   }\r
 \r
   Interface->Signature = IP4_INTERFACE_SIGNATURE;\r
-  NetListInit (&Interface->Link);\r
+  InitializeListHead (&Interface->Link);\r
   Interface->RefCnt     = 1;\r
 \r
   Interface->Ip         = IP4_ALLZERO_ADDRESS;\r
@@ -486,8 +472,8 @@ Ip4CreateInterface (
   Interface->Arp        = NULL;\r
   Interface->ArpHandle  = NULL;\r
 \r
-  NetListInit (&Interface->ArpQues);\r
-  NetListInit (&Interface->SentFrames);\r
+  InitializeListHead (&Interface->ArpQues);\r
+  InitializeListHead (&Interface->SentFrames);\r
 \r
   Interface->RecvRequest = NULL;\r
 \r
@@ -495,7 +481,7 @@ Ip4CreateInterface (
   // Get the interface's Mac address and broadcast mac address from SNP\r
   //\r
   if (EFI_ERROR (Mnp->GetModeData (Mnp, NULL, &SnpMode))) {\r
-    NetFreePool (Interface);\r
+    gBS->FreePool (Interface);\r
     return NULL;\r
   }\r
 \r
@@ -503,7 +489,7 @@ Ip4CreateInterface (
   CopyMem (&Interface->BroadcastMac, &SnpMode.BroadcastAddress, sizeof (Interface->BroadcastMac));\r
   Interface->HwaddrLen    = SnpMode.HwAddressSize;\r
 \r
-  NetListInit (&Interface->IpInstances);\r
+  InitializeListHead (&Interface->IpInstances);\r
   Interface->PromiscRecv = FALSE;\r
 \r
   return Interface;\r
@@ -525,9 +511,9 @@ Ip4CreateInterface (
 **/\r
 EFI_STATUS\r
 Ip4SetAddress (\r
-  IN  IP4_INTERFACE         *Interface,\r
-  IN  IP4_ADDR              IpAddr,\r
-  IN  IP4_ADDR              SubnetMask\r
+  IN OUT IP4_INTERFACE      *Interface,\r
+  IN     IP4_ADDR           IpAddr,\r
+  IN     IP4_ADDR           SubnetMask\r
   )\r
 {\r
   EFI_ARP_CONFIG_DATA       ArpConfig;\r
@@ -554,7 +540,7 @@ Ip4SetAddress (
 \r
   Type                      = NetGetIpClass (IpAddr);\r
   Len                       = NetGetMaskLength (SubnetMask);\r
-  Netmask                   = mIp4AllMasks[MIN (Len, Type << 3)];\r
+  Netmask                   = gIp4AllMasks[MIN (Len, Type << 3)];\r
   Interface->NetBrdcast     = (IpAddr | ~Netmask);\r
 \r
   //\r
@@ -627,7 +613,7 @@ ON_ERROR:
 \r
 \r
 /**\r
-  Fileter function to cancel all the frame related to an IP instance.\r
+  Filter function to cancel all the frame related to an IP instance.\r
 \r
   @param  Frame                 The transmit request to test whether to cancel\r
   @param  Context               The context which is the Ip instance that issued\r
@@ -638,7 +624,6 @@ ON_ERROR:
   @retval FALSE                 The frame doesn't belong to this instance.\r
 \r
 **/\r
-STATIC\r
 BOOLEAN\r
 Ip4CancelInstanceFrame (\r
   IN IP4_LINK_TX_TOKEN *Frame,\r
@@ -677,13 +662,12 @@ Ip4CancelReceive (
   IP4_LINK_RX_TOKEN         *Token;\r
 \r
   if ((Token = Interface->RecvRequest) != NULL) {\r
-    OldTpl = NET_RAISE_TPL (NET_TPL_LOCK);\r
+    OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
 \r
     Interface->RecvRequest = NULL;\r
     Interface->Mnp->Cancel (Interface->Mnp, &Token->MnpToken);\r
-    Ip4FreeFrameRxToken (Token);\r
 \r
-    NET_RESTORE_TPL (OldTpl);\r
+    gBS->RestoreTPL (OldTpl);\r
   }\r
 }\r
 \r
@@ -697,7 +681,7 @@ Ip4CancelReceive (
 \r
   @param  Interface             The interface used by the IpInstance\r
   @param  IpInstance            The Ip instance that free the interface. NULL if\r
-                                the  Ip driver is releasing the default interface.\r
+                                the Ip driver is releasing the default interface.\r
 \r
   @retval EFI_SUCCESS           The interface use IpInstance is freed.\r
 \r
@@ -729,9 +713,9 @@ Ip4FreeInterface (
   Ip4CancelFrames (Interface, EFI_ABORTED, Ip4CancelInstanceFrame, NULL);\r
   Ip4CancelReceive (Interface);\r
 \r
-  ASSERT (NetListIsEmpty (&Interface->IpInstances));\r
-  ASSERT (NetListIsEmpty (&Interface->ArpQues));\r
-  ASSERT (NetListIsEmpty (&Interface->SentFrames));\r
+  ASSERT (IsListEmpty (&Interface->IpInstances));\r
+  ASSERT (IsListEmpty (&Interface->ArpQues));\r
+  ASSERT (IsListEmpty (&Interface->SentFrames));\r
 \r
   if (Interface->Arp != NULL) {\r
     gBS->CloseProtocol (\r
@@ -749,8 +733,8 @@ Ip4FreeInterface (
       );\r
   }\r
 \r
-  NetListRemoveEntry (&Interface->Link);\r
-  NetFreePool (Interface);\r
+  RemoveEntryList (&Interface->Link);\r
+  gBS->FreePool (Interface);\r
 \r
   return EFI_SUCCESS;\r
 }\r
@@ -767,15 +751,14 @@ Ip4FreeInterface (
   @return None\r
 \r
 **/\r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnArpResolvedDpc (\r
   IN VOID                   *Context\r
   )\r
 {\r
-  NET_LIST_ENTRY            *Entry;\r
-  NET_LIST_ENTRY            *Next;\r
+  LIST_ENTRY                *Entry;\r
+  LIST_ENTRY                *Next;\r
   IP4_ARP_QUE               *ArpQue;\r
   IP4_INTERFACE             *Interface;\r
   IP4_LINK_TX_TOKEN         *Token;\r
@@ -784,7 +767,7 @@ Ip4OnArpResolvedDpc (
   ArpQue = (IP4_ARP_QUE *) Context;\r
   NET_CHECK_SIGNATURE (ArpQue, IP4_FRAME_ARP_SIGNATURE);\r
 \r
-  NetListRemoveEntry (&ArpQue->Link);\r
+  RemoveEntryList (&ArpQue->Link);\r
 \r
   //\r
   // ARP resolve failed for some reason. Release all the frame\r
@@ -805,7 +788,7 @@ Ip4OnArpResolvedDpc (
   Interface = ArpQue->Interface;\r
 \r
   NET_LIST_FOR_EACH_SAFE (Entry, Next, &ArpQue->Frames) {\r
-    NetListRemoveEntry (Entry);\r
+    RemoveEntryList (Entry);\r
 \r
     Token         = NET_LIST_USER_STRUCT (Entry, IP4_LINK_TX_TOKEN, Link);\r
     CopyMem (&Token->DstMac, &ArpQue->Mac, sizeof (Token->DstMac));\r
@@ -817,11 +800,11 @@ Ip4OnArpResolvedDpc (
     // Status of Mnp->Transmit is not EFI_SUCCESS as in this case the\r
     // FrameSentDpc won't be queued.\r
     //\r
-    NetListInsertTail (&Interface->SentFrames, &Token->Link);\r
+    InsertTailList (&Interface->SentFrames, &Token->Link);\r
 \r
     Status = Interface->Mnp->Transmit (Interface->Mnp, &Token->MnpToken);\r
     if (EFI_ERROR (Status)) {\r
-      NetListRemoveEntry (Entry);\r
+      RemoveEntryList (Entry);\r
       Token->CallBack (Token->IpInstance, Token->Packet, Status, 0, Token->Context);\r
 \r
       Ip4FreeLinkTxToken (Token);\r
@@ -832,29 +815,22 @@ Ip4OnArpResolvedDpc (
   Ip4FreeArpQue (ArpQue, EFI_SUCCESS);\r
 }\r
 \r
-STATIC\r
+/**\r
+  Request Ip4OnArpResolvedDpc as a DPC at TPL_CALLBACK.\r
+\r
+  @param  Event                 The Arp request event.\r
+  @param  Context               The context of the callback, a point to the ARP\r
+                                queue.\r
+\r
+  @return None\r
+\r
+**/\r
 VOID\r
 EFIAPI\r
 Ip4OnArpResolved (\r
   IN EFI_EVENT              Event,\r
   IN VOID                   *Context\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Request Ip4OnArpResolvedDpc as a DPC at TPL_CALLBACK\r
-\r
-Arguments:\r
-\r
-  Event   - The Arp request event\r
-  Context - The context of the callback, a point to the ARP queue\r
-\r
-Returns:\r
-\r
-  None\r
-\r
---*/\r
 {\r
   //\r
   // Request Ip4OnArpResolvedDpc as a DPC at TPL_CALLBACK\r
@@ -873,7 +849,6 @@ Returns:
   @return None.\r
 \r
 **/\r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnFrameSentDpc (\r
@@ -885,7 +860,7 @@ Ip4OnFrameSentDpc (
   Token = (IP4_LINK_TX_TOKEN *) Context;\r
   NET_CHECK_SIGNATURE (Token, IP4_FRAME_TX_SIGNATURE);\r
 \r
-  NetListRemoveEntry (&Token->Link);\r
+  RemoveEntryList (&Token->Link);\r
 \r
   Token->CallBack (\r
           Token->IpInstance,\r
@@ -898,29 +873,21 @@ Ip4OnFrameSentDpc (
   Ip4FreeLinkTxToken (Token);\r
 }\r
 \r
-STATIC\r
+/**\r
+  Request Ip4OnFrameSentDpc as a DPC at TPL_CALLBACK.\r
+\r
+  @param  Event                 The transmit token's event.\r
+  @param  Context               Context which is point to the token.\r
+\r
+  @return None\r
+\r
+**/\r
 VOID\r
 EFIAPI\r
 Ip4OnFrameSent (\r
   IN EFI_EVENT               Event,\r
   IN VOID                    *Context\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Request Ip4OnFrameSentDpc as a DPC at TPL_CALLBACK\r
-\r
-Arguments:\r
-\r
-  Event   - The transmit token's event\r
-  Context - Context which is point to the token.\r
-\r
-Returns:\r
-\r
-  None.\r
-\r
---*/\r
 {\r
   //\r
   // Request Ip4OnFrameSentDpc as a DPC at TPL_CALLBACK\r
@@ -949,6 +916,7 @@ Returns:
   @retval EFI_OUT_OF_RESOURCES  Failed to allocate resource to send the frame\r
   @retval EFI_NO_MAPPING        Can't resolve the MAC for the nexthop\r
   @retval EFI_SUCCESS           The packet is successfully transmitted.\r
+  @retval other                 Other error occurs.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -962,7 +930,7 @@ Ip4SendFrame (
   )\r
 {\r
   IP4_LINK_TX_TOKEN         *Token;\r
-  NET_LIST_ENTRY            *Entry;\r
+  LIST_ENTRY                *Entry;\r
   IP4_ARP_QUE               *ArpQue;\r
   EFI_ARP_PROTOCOL          *Arp;\r
   EFI_STATUS                Status;\r
@@ -1035,7 +1003,7 @@ Ip4SendFrame (
   // Found a pending ARP request, enqueue the frame then return\r
   //\r
   if (Entry != &Interface->ArpQues) {\r
-    NetListInsertTail (&ArpQue->Frames, &Token->Link);\r
+    InsertTailList (&ArpQue->Frames, &Token->Link);\r
     return EFI_SUCCESS;\r
   }\r
 \r
@@ -1056,8 +1024,8 @@ Ip4SendFrame (
     goto ON_ERROR;\r
   }\r
 \r
-  NetListInsertHead (&ArpQue->Frames, &Token->Link);\r
-  NetListInsertHead (&Interface->ArpQues, &ArpQue->Link);\r
+  InsertHeadList (&ArpQue->Frames, &Token->Link);\r
+  InsertHeadList (&Interface->ArpQues, &ArpQue->Link);\r
   return EFI_SUCCESS;\r
 \r
 SEND_NOW:\r
@@ -1065,10 +1033,10 @@ SEND_NOW:
   // Insert the tx token into the SentFrames list before calling Mnp->Transmit.\r
   // Remove it if the returned status is not EFI_SUCCESS.\r
   //\r
-  NetListInsertTail (&Interface->SentFrames, &Token->Link);\r
+  InsertTailList (&Interface->SentFrames, &Token->Link);\r
   Status = Interface->Mnp->Transmit (Interface->Mnp, &Token->MnpToken);\r
   if (EFI_ERROR (Status)) {\r
-    NetListRemoveEntry (&Interface->SentFrames);\r
+    RemoveEntryList (&Interface->SentFrames);\r
     goto ON_ERROR;\r
   }\r
 \r
@@ -1089,7 +1057,6 @@ ON_ERROR:
   @return None.\r
 \r
 **/\r
-STATIC\r
 VOID\r
 Ip4RecycleFrame (\r
   IN VOID                   *Context\r
@@ -1118,7 +1085,6 @@ Ip4RecycleFrame (
   @return None.\r
 \r
 **/\r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnFrameReceivedDpc (\r
@@ -1176,7 +1142,6 @@ Ip4OnFrameReceivedDpc (
   Token->CallBack (Token->IpInstance, Packet, EFI_SUCCESS, Flag, Token->Context);\r
 }\r
 \r
-STATIC\r
 VOID\r
 EFIAPI\r
 Ip4OnFrameReceived (\r
@@ -1219,6 +1184,7 @@ Returns:
   @retval EFI_ALREADY_STARTED   There is already a pending receive request.\r
   @retval EFI_OUT_OF_RESOURCES  Failed to allocate resource to receive\r
   @retval EFI_SUCCESS           The recieve request has been started.\r
+  @retval other                 Other error occurs.\r
 \r
 **/\r
 EFI_STATUS\r