]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.c
Add more comments
[mirror_edk2.git] / MdeModulePkg / Library / DxeUdpIoLib / DxeUdpIoLib.c
index 6efb37ecd46c46ecab96da5bbd56be24fcc47aeb..d6ac65278378e2039a19558640c36fea0fda14e5 100644 (file)
@@ -4,7 +4,7 @@
 Copyright (c) 2005 - 2007, Intel Corporation.<BR>\r
 All rights reserved. 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
+which accompanies this distribution.  The full text of the license may be found at<BR>\r
 http://opensource.org/licenses/bsd-license.php\r
 \r
 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
@@ -24,7 +24,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 \r
 /**\r
-  Free a UDP_TX_TOKEN. The event is closed and memory released.\r
+  Free a UDP_TX_TOKEN. The TX event is closed.\r
 \r
   @param  Token                 The UDP_TX_TOKEN to release.\r
 \r
@@ -39,9 +39,9 @@ UdpIoFreeTxToken (
 }\r
 \r
 /**\r
-  Free a receive request wrap.\r
+  Free a UDP_RX_TOKEN. The RX event is closed.\r
 \r
-  @param  Token                 The receive request to release.\r
+  @param  Token                 The UDP_RX_TOKEN to release.\r
 \r
 **/\r
 VOID\r
@@ -55,8 +55,9 @@ UdpIoFreeRxToken (
 \r
 /**\r
   The callback function when the packet is sent by UDP.\r
+  \r
   It will remove the packet from the local list then call\r
-  the packet owner's callback function.\r
+  the packet owner's callback function set by UdpIoSendDatagram.\r
 \r
   @param  Context               The UDP TX Token.\r
 \r
@@ -117,8 +118,9 @@ UdpIoRecycleDgram (
 }\r
 \r
 /**\r
-  The event handle for UDP receive request. It will build\r
-  a NET_BUF from the recieved UDP data, then deliver it\r
+  The event handle for UDP receive request.\r
+  \r
+  It will build a NET_BUF from the recieved UDP data, then deliver it\r
   to the receiver.\r
 \r
   @param  Context               The UDP RX token.\r
@@ -363,12 +365,15 @@ UdpIoWrapTx (
   return Token;\r
 }\r
 \r
-\r
-\r
-\r
 /**\r
-  Create a UDP IO port to access the UDP service. It will\r
-  create and configure a UDP child.\r
+  Create a UDP_IO_PORT to access the UDP service. It will create and configure\r
+  a UDP child.\r
+  \r
+  The function will locate the UDP service binding prototype on the Controller\r
+  parameter and use it to create a UDP child (aka Udp instance). Then the UDP\r
+  child will be configured by calling Configure function prototype. Any failures\r
+  in creating or configure the UDP child will lead to the failure of UDP_IO_PORT\r
+  creation.\r
 \r
   @param  Controller            The controller that has the UDP service binding\r
                                 protocol installed.\r
@@ -376,7 +381,7 @@ UdpIoWrapTx (
   @param  Configure             The function to configure the created UDP child\r
   @param  Context               The opaque parameter for the Configure funtion.\r
 \r
-  @return A point to just created UDP IO port or NULL if some error happened.\r
+  @return Newly-created UDP_IO_PORT or NULL if failed.\r
 \r
 **/\r
 UDP_IO_PORT *\r
@@ -465,12 +470,11 @@ FREE_MEM:
   return NULL;\r
 }\r
 \r
-\r
 /**\r
-  Cancel all the sent datagram that pass the selection of ToCancel.\r
+  Cancel all the sent datagram that pass the selection criteria of ToCancel.\r
   If ToCancel is NULL, all the datagrams are cancelled.\r
 \r
-  @param  UdpIo                 The UDP IO port to cancel packet\r
+  @param  UdpIo                 The UDP_IO_PORT to cancel packet\r
   @param  IoStatus              The IoStatus to return to the packet owners.\r
   @param  ToCancel              The select funtion to test whether to cancel this\r
                                 packet or not.\r
@@ -498,14 +502,14 @@ UdpIoCancelDgrams (
   }\r
 }\r
 \r
-\r
 /**\r
-  Free the UDP IO port and all its related resources including\r
-  all the transmitted packet.\r
+  Free the UDP_IO_PORT and all its related resources.\r
+  \r
+  The function will cancel all sent datagram and receive request.\r
 \r
-  @param  UdpIo                 The UDP IO port to free.\r
+  @param  UdpIo                 The UDP_IO_PORT to free.\r
 \r
-  @retval EFI_SUCCESS           The UDP IO port is freed.\r
+  @retval EFI_SUCCESS           The UDP_IO_PORT is freed.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -557,11 +561,13 @@ UdpIoFreePort (
 \r
 \r
 /**\r
-  Clean up the UDP IO port. It will release all the transmitted\r
-  datagrams and receive request. It will also configure NULL the\r
-  UDP child.\r
+  Clean up the UDP_IO_PORT without freeing it. The function is called when\r
+  user wants to re-use the UDP_IO_PORT later.\r
+  \r
+  It will release all the transmitted datagrams and receive request. It will\r
+  also configure NULL for the UDP instance.\r
 \r
-  @param  UdpIo                 UDP IO port to clean up.\r
+  @param  UdpIo                 The UDP_IO_PORT to clean up.\r
 \r
 **/\r
 VOID\r
@@ -585,15 +591,20 @@ UdpIoCleanPort (
 }\r
 \r
 /**\r
-  Send a packet through the UDP IO port.\r
+  Send a packet through the UDP_IO_PORT.\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
-  @param  UdpIo                 The UDP IO Port to send the packet through\r
+  @param  UdpIo                 The UDP_IO_PORT to send the packet through\r
   @param  Packet                The packet to send\r
-  @param  EndPoint              The local and remote access point\r
+  @param  EndPoint              The local and remote access point. Override the\r
+                                default address pair set during configuration.\r
   @param  Gateway               The gateway to use\r
-  @param  CallBack              The call back function to call when packet is\r
+  @param  CallBack              The function being called when packet is\r
                                 transmitted or failed.\r
-  @param  Context               The opque parameter to the CallBack\r
+  @param  Context               The opaque parameter passed to CallBack\r
 \r
   @retval EFI_OUT_OF_RESOURCES  Failed to allocate resource for the packet\r
   @retval EFI_SUCCESS           The packet is successfully delivered to UDP  for\r
@@ -637,10 +648,10 @@ UdpIoSendDatagram (
 \r
 \r
 /**\r
-  The selection function to cancel a single sent datagram.\r
+  The select function to cancel a single sent datagram.\r
 \r
-  @param  Token                 The UDP TX token to test againist.\r
-  @param  Context               The context\r
+  @param  Token                 The UDP_TX_TOKEN to test against\r
+  @param  Context               The NET_BUF of the sent datagram\r
 \r
   @retval TRUE              The packet is to be cancelled.\r
   @retval FALSE             The packet is not to be cancelled.\r
@@ -662,11 +673,10 @@ UdpIoCancelSingleDgram (
   return FALSE;\r
 }\r
 \r
-\r
 /**\r
   Cancel a single sent datagram.\r
 \r
-  @param  UdpIo                 The UDP IO port to cancel the packet from\r
+  @param  UdpIo                 The UDP_IO_PORT to cancel the packet from\r
   @param  Packet                The packet to cancel\r
 \r
 **/\r
@@ -681,17 +691,22 @@ UdpIoCancelSentDatagram (
 }\r
 \r
 /**\r
-  Issue a receive request to the UDP IO port.\r
+  Issue a receive request to the UDP_IO_PORT.\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 so a common usage model is\r
+  to invoke this function inside its Callback function when the former packet\r
+  is processed.\r
 \r
-  @param  UdpIo                 The UDP IO port to recieve the packet from.\r
-  @param  CallBack              The call back function to execute when receive\r
-                                finished.\r
-  @param  Context               The opque context to the call back\r
-  @param  HeadLen               The lenght of the application's header\r
+  @param  UdpIo                 The UDP_IO_PORT to receive the packet from.\r
+  @param  CallBack              The call back function to execute when the packet\r
+                                is received.\r
+  @param  Context               The opaque context passed to Callback\r
+  @param  HeadLen               The length of the upper-layer's protocol header\r
 \r
   @retval EFI_ALREADY_STARTED   There is already a pending receive request. Only\r
-                                one receive request is supported.\r
-  @retval EFI_OUT_OF_RESOURCES  Failed to allocate some resource.\r
+                                one receive request is supported at a time.\r
+  @retval EFI_OUT_OF_RESOURCES  Failed to allocate needed resources.\r
   @retval EFI_SUCCESS           The receive request is issued successfully.\r
 \r
 **/\r