]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/UefiPxeBcDxe/PxeBcSupport.h
NetworkPkg/UefiPxeBcDxe: handle competing DHCP servers (more) gracefully
[mirror_edk2.git] / NetworkPkg / UefiPxeBcDxe / PxeBcSupport.h
index c82237be0eb4a0654524bd48620b5b3a0e32a892..312572129e787063ef2af09ad54e1cad212e5e44 100644 (file)
@@ -1,15 +1,9 @@
 /** @file\r
   Support functions declaration for UefiPxeBc Driver.\r
 \r
-  Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2007 - 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
@@ -27,7 +21,7 @@
 \r
 \r
 /**\r
-  Flush the previous configration using the new station Ip address.\r
+  Flush the previous configuration using the new station Ip address.\r
 \r
   @param[in]   Private        Pointer to PxeBc private data.\r
   @param[in]   StationIp      Pointer to the station Ip address.\r
@@ -38,9 +32,9 @@
 \r
 **/\r
 EFI_STATUS\r
-PxeBcFlushStaionIp (\r
+PxeBcFlushStationIp (\r
   PXEBC_PRIVATE_DATA       *Private,\r
-  EFI_IP_ADDRESS           *StationIp,\r
+  EFI_IP_ADDRESS           *StationIp,     OPTIONAL\r
   EFI_IP_ADDRESS           *SubnetMask     OPTIONAL\r
   );\r
 \r
@@ -65,7 +59,7 @@ PxeBcCommonNotify (
 \r
   @param  Mode           Pointer to EFI_PXE_BASE_CODE_MODE.\r
   @param  Ip4Addr        The Ip4 address for resolution.\r
-  @param  MacAddress     The resoluted MAC address if the resolution is successful.\r
+  @param  MacAddress     The resolved MAC address if the resolution is successful.\r
                          The value is undefined if resolution fails.\r
 \r
   @retval TRUE           Found a matched entry.\r
@@ -128,13 +122,15 @@ PxeBcIcmp6ErrorUpdate (
 /**\r
   This function is to configure a UDPv4 instance for UdpWrite.\r
 \r
-  @param[in]       Udp4                 Pointer to EFI_UDP4_PROTOCOL.\r
-  @param[in]       StationIp            Pointer to the station address.\r
-  @param[in]       SubnetMask           Pointer to the subnet mask.\r
-  @param[in]       Gateway              Pointer to the gateway address.\r
-  @param[in, out]  SrcPort              Pointer to the source port.\r
-  @param[in]       DoNotFragment        The flag of DoNotFragment bit in the IPv4\r
-                                        packet.\r
+  @param[in]       Udp4                 The pointer to EFI_UDP4_PROTOCOL.\r
+  @param[in]       StationIp            The pointer to the station address.\r
+  @param[in]       SubnetMask           The pointer to the subnet mask.\r
+  @param[in]       Gateway              The pointer to the gateway address.\r
+  @param[in, out]  SrcPort              The pointer to the source port.\r
+  @param[in]       DoNotFragment        If TRUE, fragment is not enabled.\r
+                                        Otherwise, fragment is enabled.\r
+  @param[in]       Ttl                  The time to live field of the IP header.\r
+  @param[in]       ToS                  The type of service field of the IP header.\r
 \r
   @retval          EFI_SUCCESS          Successfully configured this instance.\r
   @retval          Others               Failed to configure this instance.\r
@@ -147,7 +143,9 @@ PxeBcConfigUdp4Write (
   IN     EFI_IPv4_ADDRESS   *SubnetMask,\r
   IN     EFI_IPv4_ADDRESS   *Gateway,\r
   IN OUT UINT16             *SrcPort,\r
-  IN     BOOLEAN            DoNotFragment\r
+  IN     BOOLEAN            DoNotFragment,\r
+  IN     UINT8              Ttl,\r
+  IN     UINT8              ToS\r
   );\r
 \r
 \r
@@ -158,7 +156,7 @@ PxeBcConfigUdp4Write (
   @param[in]       StationIp            Pointer to the station address.\r
   @param[in, out]  SrcPort              Pointer to the source port.\r
 \r
-  @retval          EFI_SUCCESS          Successfuly configured this instance.\r
+  @retval          EFI_SUCCESS          Successfully configured this instance.\r
   @retval          Others               Failed to configure this instance.\r
 \r
 **/\r
@@ -236,7 +234,7 @@ PxeBcUdp6Write (
   @param[in]  Session             Pointer to the current UDPv4 session.\r
   @param[in]  OpFlags             Operation flag for UdpRead/UdpWrite.\r
 \r
-  @retval     TRUE                Succesfully passed the Ip filter.\r
+  @retval     TRUE                Successfully passed the Ip filter.\r
   @retval     FALSE               Failed to pass the Ip filter.\r
 \r
 **/\r
@@ -256,7 +254,7 @@ PxeBcCheckByIpFilter (
   @param[in, out]  DestIp         Pointer to the dest Ip address.\r
   @param[in]       OpFlags        Operation flag for UdpRead/UdpWrite.\r
 \r
-  @retval     TRUE                Succesfully passed the IPv4 filter.\r
+  @retval     TRUE                Successfully passed the IPv4 filter.\r
   @retval     FALSE               Failed to pass the IPv4 filter.\r
 \r
 **/\r
@@ -277,7 +275,7 @@ PxeBcCheckByDestIp (
   @param[in, out]  DestPort       Pointer to the destination port.\r
   @param[in]       OpFlags        Operation flag for UdpRead/UdpWrite.\r
 \r
-  @retval     TRUE                Succesfully passed the IPv4 filter.\r
+  @retval     TRUE                Successfully passed the IPv4 filter.\r
   @retval     FALSE               Failed to pass the IPv4 filter.\r
 \r
 **/\r
@@ -298,7 +296,7 @@ PxeBcCheckByDestPort (
   @param[in, out]  SrcIp          Pointer to the source Ip address.\r
   @param[in]       OpFlags        Operation flag for UdpRead/UdpWrite.\r
 \r
-  @retval     TRUE                Succesfully passed the IPv4 filter.\r
+  @retval     TRUE                Successfully passed the IPv4 filter.\r
   @retval     FALSE               Failed to pass the IPv4 filter.\r
 \r
 **/\r
@@ -319,7 +317,7 @@ PxeBcFilterBySrcIp (
   @param[in, out]  SrcPort        Pointer to the source port.\r
   @param[in]       OpFlags        Operation flag for UdpRead/UdpWrite.\r
 \r
-  @retval     TRUE                Succesfully passed the IPv4 filter.\r
+  @retval     TRUE                Successfully passed the IPv4 filter.\r
   @retval     FALSE               Failed to pass the IPv4 filter.\r
 \r
 **/\r
@@ -448,6 +446,7 @@ PxeBcUintnToAscDecWithFormat (
 \r
   @param[in]  Number         Numeric value to be converted.\r
   @param[in]  Buffer         Pointer to the buffer for ASCII string.\r
+  @param[in]  BufferSize     The maxsize of the buffer.\r
 \r
   @return     Length         The actual length of the ASCII string.\r
 \r
@@ -455,7 +454,8 @@ PxeBcUintnToAscDecWithFormat (
 UINTN\r
 PxeBcUintnToAscDec (\r
   IN UINTN               Number,\r
-  IN UINT8               *Buffer\r
+  IN UINT8               *Buffer,\r
+  IN UINTN               BufferSize\r
   );\r
 \r
 /**\r
@@ -485,4 +485,29 @@ CalcElapsedTime (
   IN     PXEBC_PRIVATE_DATA     *Private\r
   );\r
 \r
+/**\r
+  Get the Nic handle using any child handle in the IPv4 stack.\r
+\r
+  @param[in]  ControllerHandle    Pointer to child handle over IPv4.\r
+\r
+  @return NicHandle               The pointer to the Nic handle.\r
+\r
+**/\r
+EFI_HANDLE\r
+PxeBcGetNicByIp4Children (\r
+  IN EFI_HANDLE                 ControllerHandle\r
+  );\r
+\r
+/**\r
+  Get the Nic handle using any child handle in the IPv6 stack.\r
+\r
+  @param[in]  ControllerHandle    Pointer to child handle over IPv6.\r
+\r
+  @return NicHandle               The pointer to the Nic handle.\r
+\r
+**/\r
+EFI_HANDLE\r
+PxeBcGetNicByIp6Children (\r
+  IN EFI_HANDLE                  ControllerHandle\r
+  );\r
 #endif\r