]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/Network/PxeDhcp4/Dxe/PxeDhcp4Run.c
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / EdkModulePkg / Universal / Network / PxeDhcp4 / Dxe / PxeDhcp4Run.c
diff --git a/EdkModulePkg/Universal/Network/PxeDhcp4/Dxe/PxeDhcp4Run.c b/EdkModulePkg/Universal/Network/PxeDhcp4/Dxe/PxeDhcp4Run.c
deleted file mode 100644 (file)
index 4f7ce44..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2006 - 2007, Intel Corporation                                                         \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
-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
-\r
-Module Name:\r
-  PxeDhcp4Run.c\r
-  \r
-Abstract:\r
-  Simplified entry point for starting basic PxeDhcp4 client operation.\r
-\r
---*/\r
-\r
-\r
-#include "PxeDhcp4.h"\r
-\r
-/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
-EFI_STATUS\r
-EFIAPI\r
-PxeDhcp4Run (\r
-  IN EFI_PXE_DHCP4_PROTOCOL *This,\r
-  IN OPTIONAL UINTN                  OpLen,\r
-  IN OPTIONAL VOID                   *OpList\r
-  )\r
-{\r
-  PXE_DHCP4_PRIVATE_DATA  *Private;\r
-  DHCP4_PACKET            *offer_list;\r
-  EFI_STATUS              efi_status;\r
-  EFI_IP_ADDRESS          zero_ip;\r
-  UINTN                   offers;\r
-  UINTN                   timeout;\r
-  UINTN                   n;\r
-  UINT16                  seconds;\r
-\r
-  //\r
-  // Validate parameters.\r
-  //\r
-  if (This == NULL || (OpLen != 0 && OpList == NULL) || (OpLen == 0 && OpList != NULL)) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  for (n = 0; n < OpLen;) {\r
-    switch (((UINT8 *) OpList)[n]) {\r
-    case DHCP4_PAD:\r
-      ++n;\r
-      continue;\r
-\r
-    case DHCP4_END:\r
-      ++n;\r
-      break;\r
-\r
-    default:\r
-      n += 2 + ((UINT8 *) OpList)[n + 1];\r
-      continue;\r
-    }\r
-\r
-    break;\r
-  }\r
-\r
-  if (n != OpLen) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-  //\r
-  // Get pointer to instance data.\r
-  //\r
-  Private = PXE_DHCP4_PRIVATE_DATA_FROM_THIS (This);\r
-\r
-  if (Private == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (Private->PxeBc == NULL) {\r
-    return EFI_DEVICE_ERROR;\r
-  }\r
-  //\r
-  // Initialize DHCP discover packet.\r
-  //\r
-  efi_status = PxeDhcp4Setup (This, NULL);\r
-\r
-  if (EFI_ERROR (efi_status)) {\r
-    return efi_status;\r
-  }\r
-\r
-  for (n = 0; n < OpLen;) {\r
-    switch (((UINT8 *) OpList)[n]) {\r
-    case DHCP4_PAD:\r
-      ++n;\r
-      continue;\r
-\r
-    case DHCP4_END:\r
-      ++n;\r
-      break;\r
-\r
-    default:\r
-      efi_status = add_opt (\r
-                    &This->Data->Discover,\r
-                    (DHCP4_OP *) &(((UINT8 *) OpList)[n])\r
-                    );\r
-\r
-      if (EFI_ERROR (efi_status)) {\r
-        return efi_status;\r
-      }\r
-\r
-      n += 2 + ((UINT8 *) OpList)[n + 1];\r
-      continue;\r
-    }\r
-\r
-    break;\r
-  }\r
-  //\r
-  // Basic DHCP D.O.R.A.\r
-  // 1, 2, 4, 8, 16 & 32 second timeouts.\r
-  // Callback routine can be used to break out earlier.\r
-  //\r
-  ZeroMem (&zero_ip, sizeof (EFI_IP_ADDRESS));\r
-\r
-  for (timeout = 1;;) {\r
-    //\r
-    // Broadcast DHCP discover and wait for DHCP offers.\r
-    //\r
-    efi_status = PxeDhcp4Init (This, timeout, &offers, &offer_list);\r
-\r
-    if ((efi_status != EFI_NO_RESPONSE) &&\r
-        (efi_status != EFI_TIMEOUT) &&\r
-        (efi_status != EFI_SUCCESS)) {\r
-      return efi_status;\r
-    }\r
-    //\r
-    // Try to select from each DHCP or BOOTP offer.\r
-    //\r
-    for (n = 0; n < offers; ++n) {\r
-      //\r
-      // Ignore proxyDHCP offers.\r
-      //\r
-      if (!CompareMem (&offer_list[n].dhcp4.yiaddr, &zero_ip, 4)) {\r
-        continue;\r
-      }\r
-      //\r
-      // Issue DHCP Request and wait for DHCP Ack/Nak.\r
-      //\r
-      efi_status = PxeDhcp4Select (\r
-                    This,\r
-                    timeout,\r
-                    &offer_list[n]\r
-                    );\r
-\r
-      if (EFI_ERROR (efi_status)) {\r
-        continue;\r
-      }\r
-      //\r
-      // Exit when we have got our DHCP Ack.\r
-      //\r
-      if (This->Data->IsAck) {\r
-        return EFI_SUCCESS;\r
-      }\r
-    }\r
-    //\r
-    // No DHCP Acks.  Release DHCP Offer list storage.\r
-    //\r
-    if (offer_list != NULL) {\r
-      FreePool (offer_list);\r
-      offer_list = NULL;\r
-    }\r
-    //\r
-    // Try again until we have used up >= DHCP4_MAX_SECONDS.\r
-    //\r
-    if ((timeout <<= 1) > DHCP4_MAX_SECONDS) {\r
-      if (!EFI_ERROR (efi_status)) {\r
-        efi_status = EFI_TIMEOUT;\r
-      }\r
-\r
-      return efi_status;\r
-    }\r
-    //\r
-    // Next timeout value.\r
-    //\r
-    CopyMem (&seconds, &This->Data->Discover.dhcp4.secs, 2);\r
-\r
-    seconds = htons (htons (seconds) + timeout);\r
-\r
-    CopyMem (&This->Data->Discover.dhcp4.secs, &seconds, 2);\r
-  }\r
-}\r
-\r
-/* eof - PxeDhcp4Run.c */\r