]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h
MdeModulePkg: Delete UefiPxeBcDxe in MdeModulePkg.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / UefiPxeBcDxe / PxeBcDhcp.h
diff --git a/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h b/MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h
deleted file mode 100644 (file)
index d8336c5..0000000
+++ /dev/null
@@ -1,502 +0,0 @@
-/** @file\r
-  Dhcp and Discover routines for PxeBc.\r
-\r
-Copyright (c) 2013, Red Hat, Inc.\r
-Copyright (c) 2007 - 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\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
-**/\r
-\r
-#ifndef __EFI_PXEBC_DHCP_H__\r
-#define __EFI_PXEBC_DHCP_H__\r
-\r
-#define PXEBC_DHCP4_MAX_OPTION_NUM         16\r
-#define PXEBC_DHCP4_MAX_OPTION_SIZE        312\r
-#define PXEBC_DHCP4_MAX_PACKET_SIZE        (sizeof (EFI_PXE_BASE_CODE_PACKET))\r
-\r
-#define PXEBC_DHCP4_S_PORT                 67\r
-#define PXEBC_DHCP4_C_PORT                 68\r
-#define PXEBC_BS_DOWNLOAD_PORT             69\r
-#define PXEBC_BS_DISCOVER_PORT             4011\r
-\r
-#define PXEBC_DHCP4_OPCODE_REQUEST         1\r
-#define PXEBC_DHCP4_OPCODE_REPLY           2\r
-#define PXEBC_DHCP4_MSG_TYPE_REQUEST       3\r
-#define PXEBC_DHCP4_MAGIC                  0x63538263 // network byte order\r
-\r
-//\r
-// Sub-Options in Dhcp Vendor Option\r
-//\r
-#define PXEBC_VENDOR_TAG_MTFTP_IP          1\r
-#define PXEBC_VENDOR_TAG_MTFTP_CPORT       2\r
-#define PXEBC_VENDOR_TAG_MTFTP_SPORT       3\r
-#define PXEBC_VENDOR_TAG_MTFTP_TIMEOUT     4\r
-#define PXEBC_VENDOR_TAG_MTFTP_DELAY       5\r
-#define PXEBC_VENDOR_TAG_DISCOVER_CTRL     6\r
-#define PXEBC_VENDOR_TAG_DISCOVER_MCAST    7\r
-#define PXEBC_VENDOR_TAG_BOOT_SERVERS      8\r
-#define PXEBC_VENDOR_TAG_BOOT_MENU         9\r
-#define PXEBC_VENDOR_TAG_MENU_PROMPT       10\r
-#define PXEBC_VENDOR_TAG_MCAST_ALLOC       11\r
-#define PXEBC_VENDOR_TAG_CREDENTIAL_TYPES  12\r
-#define PXEBC_VENDOR_TAG_BOOT_ITEM         71\r
-\r
-#define PXEBC_DHCP4_DISCOVER_INIT_TIMEOUT  4\r
-#define PXEBC_DHCP4_DISCOVER_RETRIES       4\r
-\r
-#define PXEBC_MAX_MENU_NUM                 24\r
-#define PXEBC_MAX_OFFER_NUM                16\r
-\r
-#define PXEBC_BOOT_REQUEST_TIMEOUT         1\r
-#define PXEBC_BOOT_REQUEST_RETRIES         4\r
-\r
-#define PXEBC_DHCP4_OVERLOAD_FILE          1\r
-#define PXEBC_DHCP4_OVERLOAD_SERVER_NAME   2\r
-\r
-//\r
-// The array index of the DHCP4 option tag interested\r
-//\r
-#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN 0\r
-#define PXEBC_DHCP4_TAG_INDEX_VENDOR       1\r
-#define PXEBC_DHCP4_TAG_INDEX_OVERLOAD     2\r
-#define PXEBC_DHCP4_TAG_INDEX_MSG_TYPE     3\r
-#define PXEBC_DHCP4_TAG_INDEX_SERVER_ID    4\r
-#define PXEBC_DHCP4_TAG_INDEX_CLASS_ID     5\r
-#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE     6\r
-#define PXEBC_DHCP4_TAG_INDEX_MAX          7\r
-\r
-//\r
-// The type of DHCP OFFER, arranged by priority, PXE10 has the highest priority.\r
-//\r
-#define DHCP4_PACKET_TYPE_PXE10            0\r
-#define DHCP4_PACKET_TYPE_WFM11A           1\r
-#define DHCP4_PACKET_TYPE_BINL             2\r
-#define DHCP4_PACKET_TYPE_DHCP_ONLY        3\r
-#define DHCP4_PACKET_TYPE_BOOTP            4\r
-#define DHCP4_PACKET_TYPE_MAX              5\r
-\r
-#define BIT(x)  (1 << x)\r
-#define CTRL(x) (0x1F & (x))\r
-\r
-//\r
-// WfM11a options\r
-//\r
-#define MTFTP_VENDOR_OPTION_BIT_MAP (BIT (PXEBC_VENDOR_TAG_MTFTP_IP) | \\r
-                                     BIT (PXEBC_VENDOR_TAG_MTFTP_CPORT) | \\r
-                                     BIT (PXEBC_VENDOR_TAG_MTFTP_SPORT) | \\r
-                                     BIT (PXEBC_VENDOR_TAG_MTFTP_TIMEOUT) | \\r
-                                     BIT (PXEBC_VENDOR_TAG_MTFTP_DELAY))\r
-//\r
-// Discoverty options\r
-//\r
-#define DISCOVER_VENDOR_OPTION_BIT_MAP  (BIT (PXEBC_VENDOR_TAG_DISCOVER_CTRL) | \\r
-                                         BIT (PXEBC_VENDOR_TAG_DISCOVER_MCAST) | \\r
-                                         BIT (PXEBC_VENDOR_TAG_BOOT_SERVERS) | \\r
-                                         BIT (PXEBC_VENDOR_TAG_BOOT_MENU) | \\r
-                                         BIT (PXEBC_VENDOR_TAG_MENU_PROMPT))\r
-\r
-#define IS_VALID_BOOT_PROMPT(x) \\r
-  ((((x)[0]) & BIT (PXEBC_VENDOR_TAG_MENU_PROMPT)) == BIT (PXEBC_VENDOR_TAG_MENU_PROMPT))\r
-\r
-#define IS_VALID_BOOT_MENU(x) \\r
-  ((((x)[0]) & BIT (PXEBC_VENDOR_TAG_BOOT_MENU)) == BIT (PXEBC_VENDOR_TAG_BOOT_MENU))\r
-\r
-#define IS_VALID_MTFTP_VENDOR_OPTION(x) \\r
-    (((UINT32) ((x)[0]) & MTFTP_VENDOR_OPTION_BIT_MAP) == MTFTP_VENDOR_OPTION_BIT_MAP)\r
-\r
-#define IS_VALID_DISCOVER_VENDOR_OPTION(x)  (((UINT32) ((x)[0]) & DISCOVER_VENDOR_OPTION_BIT_MAP) != 0)\r
-\r
-#define IS_VALID_CREDENTIAL_VENDOR_OPTION(x) \\r
-    (((UINT32) ((x)[0]) & BIT (PXEBC_VENDOR_TAG_CREDENTIAL_TYPES)) == BIT (PXEBC_VENDOR_TAG_CREDENTIAL_TYPES))\r
-\r
-#define IS_VALID_BOOTITEM_VENDOR_OPTION(x) \\r
-    (((UINT32) ((x)[PXEBC_VENDOR_TAG_BOOT_ITEM / 32]) & BIT (PXEBC_VENDOR_TAG_BOOT_ITEM % 32)) \\r
-      == BIT (PXEBC_VENDOR_TAG_BOOT_ITEM % 32))\r
-\r
-#define IS_DISABLE_BCAST_DISCOVER(x)    (((x) & BIT (0)) == BIT (0))\r
-#define IS_DISABLE_MCAST_DISCOVER(x)    (((x) & BIT (1)) == BIT (1))\r
-#define IS_ENABLE_USE_SERVER_LIST(x)    (((x) & BIT (2)) == BIT (2))\r
-#define IS_DISABLE_PROMPT_MENU(x)       (((x) & BIT (3)) == BIT (3))\r
-\r
-#define SET_VENDOR_OPTION_BIT_MAP(x, y) (((x)[(y) / 32]) = (UINT32) ((x)[(y) / 32]) | BIT ((y) % 32))\r
-\r
-#pragma pack(1)\r
-typedef struct {\r
-  UINT8 ParaList[135];\r
-} PXEBC_DHCP4_OPTION_PARA;\r
-\r
-typedef struct {\r
-  UINT16  Size;\r
-} PXEBC_DHCP4_OPTION_MAX_MESG_SIZE;\r
-\r
-typedef struct {\r
-  UINT8 Type;\r
-  UINT8 MajorVer;\r
-  UINT8 MinorVer;\r
-} PXEBC_DHCP4_OPTION_UNDI;\r
-\r
-typedef struct {\r
-  UINT8 Type;\r
-} PXEBC_DHCP4_OPTION_MESG;\r
-\r
-typedef struct {\r
-  UINT16  Type;\r
-} PXEBC_DHCP4_OPTION_ARCH;\r
-\r
-#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:xxxxx:UNDI:003000"\r
-#define DEFAULT_UNDI_TYPE     1\r
-#define DEFAULT_UNDI_MAJOR    3\r
-#define DEFAULT_UNDI_MINOR    0\r
-\r
-typedef struct {\r
-  UINT8 ClassIdentifier[10];\r
-  UINT8 ArchitecturePrefix[5];\r
-  UINT8 ArchitectureType[5];\r
-  UINT8 Lit3[1];\r
-  UINT8 InterfaceName[4];\r
-  UINT8 Lit4[1];\r
-  UINT8 UndiMajor[3];\r
-  UINT8 UndiMinor[3];\r
-} PXEBC_DHCP4_OPTION_CLID;\r
-\r
-typedef struct {\r
-  UINT8 Type;\r
-  UINT8 Guid[16];\r
-} PXEBC_DHCP4_OPTION_UUID;\r
-\r
-typedef struct {\r
-  UINT16  Type;\r
-  UINT16  Layer;\r
-} PXEBC_OPTION_BOOT_ITEM;\r
-\r
-#pragma pack()\r
-\r
-typedef union {\r
-  PXEBC_DHCP4_OPTION_PARA           *Para;\r
-  PXEBC_DHCP4_OPTION_UNDI           *Undi;\r
-  PXEBC_DHCP4_OPTION_ARCH           *Arch;\r
-  PXEBC_DHCP4_OPTION_CLID           *Clid;\r
-  PXEBC_DHCP4_OPTION_UUID           *Uuid;\r
-  PXEBC_DHCP4_OPTION_MESG           *Mesg;\r
-  PXEBC_DHCP4_OPTION_MAX_MESG_SIZE  *MaxMesgSize;\r
-} PXEBC_DHCP4_OPTION_ENTRY;\r
-\r
-typedef struct {\r
-  UINT16            Type;\r
-  UINT8             IpCnt;\r
-  EFI_IPv4_ADDRESS  IpAddr[1];\r
-} PXEBC_BOOT_SVR_ENTRY;\r
-\r
-typedef struct {\r
-  UINT16  Type;\r
-  UINT8   DescLen;\r
-  UINT8   DescStr[1];\r
-} PXEBC_BOOT_MENU_ENTRY;\r
-\r
-typedef struct {\r
-  UINT8 Timeout;\r
-  UINT8 Prompt[1];\r
-} PXEBC_MENU_PROMPT;\r
-\r
-typedef struct {\r
-  UINT32                BitMap[8];\r
-  EFI_IPv4_ADDRESS      MtftpIp;\r
-  UINT16                MtftpCPort;\r
-  UINT16                MtftpSPort;\r
-  UINT8                 MtftpTimeout;\r
-  UINT8                 MtftpDelay;\r
-  UINT8                 DiscoverCtrl;\r
-  EFI_IPv4_ADDRESS      DiscoverMcastIp;\r
-  EFI_IPv4_ADDRESS      McastIpBase;\r
-  UINT16                McastIpBlock;\r
-  UINT16                McastIpRange;\r
-  UINT16                BootSrvType;\r
-  UINT16                BootSrvLayer;\r
-  PXEBC_BOOT_SVR_ENTRY  *BootSvr;\r
-  UINT8                 BootSvrLen;\r
-  PXEBC_BOOT_MENU_ENTRY *BootMenu;\r
-  UINT8                 BootMenuLen;\r
-  PXEBC_MENU_PROMPT     *MenuPrompt;\r
-  UINT8                 MenuPromptLen;\r
-  UINT32                *CredType;\r
-  UINT8                 CredTypeLen;\r
-} PXEBC_VENDOR_OPTION;\r
-\r
-#define PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE  (OFFSET_OF (EFI_DHCP4_PACKET, Dhcp4) + PXEBC_DHCP4_MAX_PACKET_SIZE)\r
-\r
-typedef union {\r
-  EFI_DHCP4_PACKET  Offer;\r
-  EFI_DHCP4_PACKET  Ack;\r
-  UINT8             Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE];\r
-} PXEBC_DHCP4_PACKET;\r
-\r
-typedef struct {\r
-  PXEBC_DHCP4_PACKET      Packet;\r
-  BOOLEAN                 IsPxeOffer;\r
-  UINT8                   OfferType;\r
-  EFI_DHCP4_PACKET_OPTION *Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_MAX];\r
-  PXEBC_VENDOR_OPTION    PxeVendorOption;\r
-} PXEBC_CACHED_DHCP4_PACKET;\r
-\r
-#define GET_NEXT_DHCP_OPTION(Opt) \\r
-  (EFI_DHCP4_PACKET_OPTION *) ((UINT8 *) (Opt) + sizeof (EFI_DHCP4_PACKET_OPTION) + (Opt)->Length - 1)\r
-\r
-#define GET_OPTION_BUFFER_LEN(Pkt)  ((Pkt)->Length - sizeof (EFI_DHCP4_HEADER) - 4)\r
-#define IS_PROXY_DHCP_OFFER(Offer)  EFI_IP4_EQUAL (&((Offer)->Dhcp4.Header.YourAddr), &mZeroIp4Addr)\r
-\r
-#define GET_NEXT_BOOT_SVR_ENTRY(Ent) \\r
-  (PXEBC_BOOT_SVR_ENTRY *) ((UINT8 *) Ent + sizeof (*(Ent)) + ((Ent)->IpCnt - 1) * sizeof (EFI_IPv4_ADDRESS))\r
-\r
-\r
-/**\r
-  This function initialize the DHCP4 message instance.\r
-\r
-  This function will pad each item of dhcp4 message packet.\r
-\r
-  @param  Seed    Pointer to the message instance of the DHCP4 packet.\r
-  @param  Udp4    Pointer to the EFI_UDP4_PROTOCOL instance.\r
-\r
-**/\r
-VOID\r
-PxeBcInitSeedPacket (\r
-  IN EFI_DHCP4_PACKET  *Seed,\r
-  IN EFI_UDP4_PROTOCOL *Udp4\r
-  );\r
-\r
-\r
-/**\r
-  Parse the cached dhcp packet.\r
-\r
-  @param  CachedPacket  Pointer to cached dhcp packet.\r
-\r
-  @retval TRUE          Succeed to parse and validation.\r
-  @retval FALSE         Fail to parse or validation.\r
-\r
-**/\r
-BOOLEAN\r
-PxeBcParseCachedDhcpPacket (\r
-  IN PXEBC_CACHED_DHCP4_PACKET  *CachedPacket\r
-  );\r
-\r
-/**\r
-  This function is to check the selected proxy offer (include BINL dhcp offer and\r
-  DHCP_ONLY offer ) and set the flag and copy the DHCP packets to the Pxe base code\r
-  mode structure.\r
-\r
-  @param  Private          Pointer to PxeBc private data.\r
-\r
-  @retval EFI_SUCCESS                Operational successful.\r
-  @retval EFI_NO_RESPONSE            Offer dhcp service failed.\r
-  @retval EFI_BUFFER_TOO_SMALL       Failed to copy the packet to Pxe base code mode.\r
-\r
-**/\r
-EFI_STATUS\r
-PxeBcCheckSelectedOffer (\r
-  IN PXEBC_PRIVATE_DATA  *Private\r
-  );\r
-\r
-\r
-/**\r
-  Callback routine.\r
-\r
-  EFI_DHCP4_CALLBACK is provided by the consumer of the EFI DHCPv4 Protocol driver\r
-  to intercept events that occurred in the configuration process. This structure\r
-  provides advanced control of each state transition of the DHCP process. The\r
-  returned status code determines the behavior of the EFI DHCPv4 Protocol driver.\r
-  There are three possible returned values, which are described in the following\r
-  table.\r
-\r
-  @param  This                  Pointer to the EFI DHCPv4 Protocol instance that is used to\r
-                                configure this callback function.\r
-  @param  Context               Pointer to the context that is initialized by\r
-                                EFI_DHCP4_PROTOCOL.Configure().\r
-  @param  CurrentState          The current operational state of the EFI DHCPv4 Protocol\r
-                                driver.\r
-  @param  Dhcp4Event            The event that occurs in the current state, which usually means a\r
-                                state transition.\r
-  @param  Packet                The DHCP packet that is going to be sent or already received.\r
-  @param  NewPacket             The packet that is used to replace the above Packet.\r
-\r
-  @retval EFI_SUCCESS           Tells the EFI DHCPv4 Protocol driver to continue the DHCP process.\r
-  @retval EFI_NOT_READY         Only used in the Dhcp4Selecting state. The EFI DHCPv4 Protocol\r
-                                driver will continue to wait for more DHCPOFFER packets until the retry\r
-                                timeout expires.\r
-  @retval EFI_ABORTED           Tells the EFI DHCPv4 Protocol driver to abort the current process and\r
-                                return to the Dhcp4Init or Dhcp4InitReboot state.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PxeBcDhcpCallBack (\r
-  IN EFI_DHCP4_PROTOCOL                * This,\r
-  IN VOID                              *Context,\r
-  IN EFI_DHCP4_STATE                   CurrentState,\r
-  IN EFI_DHCP4_EVENT                   Dhcp4Event,\r
-  IN EFI_DHCP4_PACKET                  * Packet OPTIONAL,\r
-  OUT EFI_DHCP4_PACKET                 **NewPacket OPTIONAL\r
-  );\r
-\r
-/**\r
-  Switch the Ip4 policy to static.\r
-\r
-  @param[in]  Private             The pointer to PXEBC_PRIVATE_DATA.\r
-\r
-  @retval     EFI_SUCCESS         The policy is already configured to static.\r
-  @retval     Others              Other error as indicated..\r
-\r
-**/\r
-EFI_STATUS\r
-PxeBcSetIp4Policy (\r
-  IN PXEBC_PRIVATE_DATA            *Private\r
-  );\r
-\r
-/**\r
-  Discover the boot of service and initialize the vendor option if exists.\r
-\r
-  @param  Private               Pointer to PxeBc private data.\r
-  @param  Type                  PxeBc option boot item type\r
-  @param  Layer                 PxeBc option boot item layer\r
-  @param  UseBis                Use BIS or not\r
-  @param  DestIp                Ip address for server\r
-  @param  IpCount               The total count of the server ip address\r
-  @param  SrvList               Server list\r
-  @param  IsDiscv               Discover the vendor or not\r
-  @param  Reply                 The dhcp4 packet of Pxe reply\r
-\r
-  @retval EFI_SUCCESS           Operation succeeds.\r
-  @retval EFI_OUT_OF_RESOURCES  Allocate memory pool failed.\r
-  @retval EFI_NOT_FOUND         There is no vendor option exists.\r
-  @retval EFI_TIMEOUT           Send Pxe Discover time out.\r
-\r
-**/\r
-EFI_STATUS\r
-PxeBcDiscvBootService (\r
-  IN PXEBC_PRIVATE_DATA                * Private,\r
-  IN UINT16                            Type,\r
-  IN UINT16                            *Layer,\r
-  IN BOOLEAN                           UseBis,\r
-  IN EFI_IP_ADDRESS                    * DestIp,\r
-  IN UINT16                            IpCount,\r
-  IN EFI_PXE_BASE_CODE_SRVLIST         * SrvList,\r
-  IN BOOLEAN                           IsDiscv,\r
-  OUT EFI_DHCP4_PACKET                 * Reply OPTIONAL\r
-  );\r
-\r
-\r
-/**\r
-  Initialize the DHCP options and build the option list.\r
-\r
-  @param  Private          Pointer to PxeBc private data.\r
-  @param  OptList          Pointer to a DHCP option list.\r
-\r
-  @param  IsDhcpDiscover   Discover dhcp option or not.\r
-\r
-  @return The index item number of the option list.\r
-\r
-**/\r
-UINT32\r
-PxeBcBuildDhcpOptions (\r
-  IN PXEBC_PRIVATE_DATA            *Private,\r
-  IN EFI_DHCP4_PACKET_OPTION       **OptList,\r
-  IN BOOLEAN                       IsDhcpDiscover\r
-  );\r
-\r
-\r
-/**\r
-  Create the boot options.\r
-\r
-  @param  OptList    Pointer to the list of the options\r
-  @param  Type       the type of option\r
-  @param  Layer      the layer of the boot options\r
-  @param  OptLen     length of opotion\r
-\r
-**/\r
-VOID\r
-PxeBcCreateBootOptions (\r
-  IN  EFI_DHCP4_PACKET_OPTION          *OptList,\r
-  IN  UINT16                           Type,\r
-  IN  UINT16                           *Layer,\r
-  OUT UINT32                           *OptLen\r
-  );\r
-\r
-\r
-/**\r
-  Parse interested dhcp options.\r
-\r
-  @param  Buffer     Pointer to the dhcp options packet.\r
-  @param  Length     The length of the dhcp options.\r
-  @param  OptTag     The option OpCode.\r
-\r
-  @return NULL if the buffer length is 0 and OpCode is not\r
-          DHCP4_TAG_EOP, or the pointer to the buffer.\r
-\r
-**/\r
-EFI_DHCP4_PACKET_OPTION *\r
-PxeBcParseExtendOptions (\r
-  IN UINT8                         *Buffer,\r
-  IN UINT32                        Length,\r
-  IN UINT8                         OptTag\r
-  );\r
-\r
-\r
-/**\r
-  This function is to parse and check vendor options.\r
-\r
-  @param  Dhcp4Option           Pointer to dhcp options\r
-  @param  VendorOption          Pointer to vendor options\r
-\r
-  @return TRUE if valid for vendor options, or FALSE.\r
-\r
-**/\r
-BOOLEAN\r
-PxeBcParseVendorOptions (\r
-  IN EFI_DHCP4_PACKET_OPTION       *Dhcp4Option,\r
-  IN PXEBC_VENDOR_OPTION           *VendorOption\r
-  );\r
-\r
-\r
-/**\r
-  Choose the boot prompt.\r
-\r
-  @param  Private              Pointer to PxeBc private data.\r
-\r
-  @retval EFI_SUCCESS          Select boot prompt done.\r
-  @retval EFI_TIMEOUT          Select boot prompt time out.\r
-  @retval EFI_NOT_FOUND        The proxy offer is not Pxe10.\r
-  @retval EFI_ABORTED          User cancel the operation.\r
-  @retval EFI_NOT_READY        Read the input key from the keybroad has not finish.\r
-\r
-**/\r
-EFI_STATUS\r
-PxeBcSelectBootPrompt (\r
-  IN PXEBC_PRIVATE_DATA              *Private\r
-  );\r
-\r
-\r
-/**\r
-  Select the boot menu.\r
-\r
-  @param  Private         Pointer to PxeBc private data.\r
-  @param  Type            The type of the menu.\r
-  @param  UseDefaultItem  Use default item or not.\r
-\r
-  @retval EFI_ABORTED     User cancel operation.\r
-  @retval EFI_SUCCESS     Select the boot menu success.\r
-  @retval EFI_NOT_READY   Read the input key from the keybroad has not finish.\r
-\r
-**/\r
-EFI_STATUS\r
-PxeBcSelectBootMenu (\r
-  IN  PXEBC_PRIVATE_DATA              *Private,\r
-  OUT UINT16                          *Type,\r
-  IN  BOOLEAN                         UseDefaultItem\r
-  );\r
-\r
-#endif\r
-\r