This library is used to share code between UEFI network stack modules.\r
It provides the helper routines to access UDP service. It is used by both DHCP and MTFTP.\r
\r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\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<BR>\r
\r
This prototype is used by both receive and sending when calling\r
UdpIoRecvDatagram() or UdpIoSendDatagram(). When receiving, Netbuf is allocated by the\r
- UDP access point and released by the user. When sending, the user allocates the the NetBuf, \r
+ UDP access point and released by the user. When sending, the user allocates the the NetBuf,\r
which is then provided to the callback as a reference.\r
\r
@param[in] Packet The packet received or sent.\r
/// This structure is used internally by UdpIo Library.\r
///\r
/// Each transmit request is wrapped in an UDP_TX_TOKEN. Upon completion,\r
-/// the CallBack will be called. There can be several transmit requests. All transmit \r
+/// the CallBack will be called. There can be several transmit requests. All transmit\r
/// requests are linked in a list.\r
///\r
\r
UINT8 UdpVersion;\r
\r
//\r
- // Handle used to create/destory UDP child\r
+ // Handle used to create/destroy UDP child\r
//\r
EFI_HANDLE Controller;\r
EFI_HANDLE Image;\r
\r
/**\r
Cancel all the sent datagram that pass the selection criteria of ToCancel.\r
+\r
If ToCancel is NULL, all the datagrams are cancelled.\r
+ If Udp version is not UDP_IO_UDP4_VERSION or UDP_IO_UDP6_VERSION, then ASSERT().\r
\r
@param[in] UdpIo The UDP_IO to cancel packet.\r
@param[in] IoStatus The IoStatus to return to the packet owners.\r
IN UDP_IO *UdpIo,\r
IN EFI_STATUS IoStatus,\r
IN UDP_IO_TO_CANCEL ToCancel, OPTIONAL\r
- IN VOID *Context\r
+ IN VOID *Context OPTIONAL\r
);\r
\r
/**\r
Creates a UDP_IO to access the UDP service. It creates and configures\r
a UDP child.\r
\r
+ If Configure is NULL, then ASSERT().\r
+ If Udp version is not UDP_IO_UDP4_VERSION or UDP_IO_UDP6_VERSION, then ASSERT().\r
+\r
It locates the UDP service binding prototype on the Controller parameter\r
uses the UDP service binding prototype to create a UDP child (also known as\r
a UDP instance) configures the UDP child by calling Configure function prototype.\r
/**\r
Free the UDP_IO and all its related resources.\r
\r
+ If Udp version is not UDP_IO_UDP4_VERSION or UDP_IO_UDP6_VERSION, then ASSERT().\r
+\r
The function cancels all sent datagrams and receive requests.\r
\r
@param[in] UdpIo The UDP_IO to free.\r
\r
@retval EFI_SUCCESS The UDP_IO is freed.\r
+ @retval Others Failed to free UDP_IO.\r
\r
**/\r
EFI_STATUS\r
Cleans up the UDP_IO without freeing it. Call this function\r
if you intend to later re-use the UDP_IO.\r
\r
+ If Udp version is not UDP_IO_UDP4_VERSION or UDP_IO_UDP6_VERSION, then ASSERT().\r
+\r
This function releases all transmitted datagrams and receive requests and configures NULL for the UDP instance.\r
\r
@param[in] UdpIo The UDP_IO to clean up.\r
/**\r
Send a packet through the UDP_IO.\r
\r
+ If Udp version is not UDP_IO_UDP4_VERSION or UDP_IO_UDP6_VERSION, then ASSERT().\r
+\r
The packet will be wrapped in UDP_TX_TOKEN. Function Callback will be called\r
when the packet is sent. The optional parameter EndPoint overrides the default\r
address pair if specified.\r
/**\r
Issue a receive request to the UDP_IO.\r
\r
+ If Udp version is not UDP_IO_UDP4_VERSION or UDP_IO_UDP6_VERSION, then ASSERT().\r
+\r
This function is called when upper-layer needs packet from UDP for processing.\r
Only one receive request is acceptable at a time. Therefore, one common usage model is\r
to invoke this function inside its Callback function when the former packet\r