/** @file\r
Udp6 driver's whole implementation and internal data structures.\r
\r
- Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
\r
- This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php.\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
#include <Library/DpcLib.h>\r
+#include <Library/PrintLib.h>\r
\r
#include "Udp6Driver.h"\r
\r
extern EFI_COMPONENT_NAME2_PROTOCOL gUdp6ComponentName2;\r
extern EFI_COMPONENT_NAME_PROTOCOL gUdp6ComponentName;\r
+extern EFI_UNICODE_STRING_TABLE *gUdp6ControllerNameTable;\r
extern EFI_SERVICE_BINDING_PROTOCOL mUdp6ServiceBinding;\r
extern EFI_UDP6_PROTOCOL mUdp6Protocol;\r
extern UINT16 mUdp6RandomPort;\r
UINTN ChildrenNumber;\r
IP_IO *IpIo;\r
EFI_EVENT TimeoutEvent;\r
- CHAR16 *MacString;\r
-} UDP6_SERVICE_DATA;\r
+ } UDP6_SERVICE_DATA;\r
\r
typedef struct _UDP6_INSTANCE_DATA {\r
UINT32 Signature;\r
UINT16 HeadSum;\r
EFI_STATUS IcmpError;\r
IP_IO_IP_INFO *IpInfo;\r
- BOOLEAN Destroyed;\r
+ BOOLEAN InDestroy;\r
} UDP6_INSTANCE_DATA;\r
\r
typedef struct _UDP6_RXDATA_WRAP {\r
EFI_UDP6_RECEIVE_DATA RxData;\r
} UDP6_RXDATA_WRAP;\r
\r
+typedef struct {\r
+ EFI_SERVICE_BINDING_PROTOCOL *ServiceBinding;\r
+ UINTN NumberOfChildren;\r
+ EFI_HANDLE *ChildHandleBuffer;\r
+} UDP6_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT;\r
+\r
/**\r
Clean the Udp service context data.\r
\r
IN EFI_HANDLE ControllerHandle\r
);\r
\r
-/**\r
- Set the Udp6 variable data.\r
-\r
- @param[in] Udp6Service Udp6 service data.\r
-\r
- @retval EFI_OUT_OF_RESOURCES There are not enough resources to set the\r
- variable.\r
- @retval other Set variable failed.\r
-\r
-**/\r
-EFI_STATUS\r
-Udp6SetVariableData (\r
- IN UDP6_SERVICE_DATA *Udp6Service\r
- );\r
-\r
/**\r
This function cleans the udp instance.\r
\r
);\r
\r
/**\r
- Clear the variable and free the resource.\r
-\r
- @param[in, out] Udp6Service Udp6 service data.\r
-\r
-**/\r
-VOID\r
-Udp6ClearVariableData (\r
- IN OUT UDP6_SERVICE_DATA *Udp6Service\r
- );\r
-\r
-/**\r
- This function intializes the new created udp instance.\r
+ This function initializes the new created udp instance.\r
\r
@param[in] Udp6Service Pointer to the UDP6_SERVICE_DATA.\r
@param[in, out] Instance Pointer to the un-initialized UDP6_INSTANCE_DATA.\r
\r
@retval EFI_SUCCESS The configuration settings were set, changed, or\r
reset successfully.\r
- @retval EFI_NO_MAPPING When the UdpConifgData.UseAnyStationAddress is set\r
+ @retval EFI_NO_MAPPING When the UdpConfigData.UseAnyStationAddress is set\r
to true and there is no address available for IP6\r
driver to binding source address to this\r
instance.\r
.FragmentBuffer fields is NULL.\r
One or more of the\r
Token.Packet.TxData.UdpSessionData.\r
- DestinationAddres are not valid unicast IPv6\r
+ DestinationAddress are not valid unicast IPv6\r
addresses, if the UdpSessionData is not NULL.\r
Token.Packet.TxData.UdpSessionData.\r
- DestinationAddres is NULL\r
+ DestinationAddress is NULL\r
Token.Packet.TxData.UdpSessionData.\r
- DestinatioPort is zero.\r
+ DestinationPort is zero.\r
Token.Packet.TxData.UdpSessionData is\r
NULL and this instance's\r
UdpConfigData.RemoteAddress is unspecified.\r
\r
/**\r
This function tries to bind the udp instance according to the configured port\r
- allocation stragety.\r
+ allocation strategy.\r
\r
@param[in] InstanceList Pointer to the head of the list linking the udp\r
instances.\r