// 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
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
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
IN VOID *Context\r
);\r
\r
-STATIC\r
VOID\r
Ip4CancelFrameArp (\r
IN IP4_ARP_QUE *ArpQue,\r
/**\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
@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
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
}\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
\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
@return NONE\r
\r
**/\r
-STATIC\r
VOID\r
Ip4FreeLinkTxToken (\r
IN IP4_LINK_TX_TOKEN *Token\r
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
@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
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
@return NONE\r
\r
**/\r
-STATIC\r
VOID\r
Ip4FreeArpQue (\r
IN IP4_ARP_QUE *ArpQue,\r
Ip4CancelFrameArp (ArpQue, IoStatus, NULL, NULL);\r
\r
gBS->CloseEvent (ArpQue->OnResolved);\r
- NetFreePool (ArpQue);\r
+ gBS->FreePool (ArpQue);\r
}\r
\r
\r
@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
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
\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
@return NONE\r
\r
**/\r
-STATIC\r
VOID\r
Ip4FreeFrameRxToken (\r
IN IP4_LINK_RX_TOKEN *Token\r
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
@return NONE\r
\r
**/\r
-STATIC\r
VOID\r
Ip4CancelFrameArp (\r
IN IP4_ARP_QUE *ArpQue,\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_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
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
\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
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
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
// 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
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
**/\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
\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
\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
@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
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
\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
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
);\r
}\r
\r
- NetListRemoveEntry (&Interface->Link);\r
- NetFreePool (Interface);\r
+ RemoveEntryList (&Interface->Link);\r
+ gBS->FreePool (Interface);\r
\r
return EFI_SUCCESS;\r
}\r
@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
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
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
// 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
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
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
EFIAPI\r
Ip4OnFrameSentDpc (\r
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
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
@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
)\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
// 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
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
// 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
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
Ip4RecycleFrame (\r
IN VOID *Context\r
@return None.\r
\r
**/\r
-STATIC\r
VOID\r
EFIAPI\r
Ip4OnFrameReceivedDpc (\r
Token->CallBack (Token->IpInstance, Packet, EFI_SUCCESS, Flag, Token->Context);\r
}\r
\r
-STATIC\r
VOID\r
EFIAPI\r
Ip4OnFrameReceived (\r
@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