]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h
Clean up to update the reference of the these macros:
[mirror_edk2.git] / MdeModulePkg / Universal / Network / UefiPxeBcDxe / PxeBcDhcp.h
CommitLineData
30368135 1/** @file\r
2\r
3Copyright (c) 2007, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13\r
14 PxeBcDhcp.h\r
15\r
16Abstract:\r
17\r
18 Dhcp and Discover routines for PxeBc\r
19\r
20\r
21**/\r
22\r
23#ifndef __EFI_PXEBC_DHCP_H__\r
24#define __EFI_PXEBC_DHCP_H__\r
25\r
26enum {\r
27 PXEBC_DHCP4_MAX_OPTION_NUM = 16,\r
28 PXEBC_DHCP4_MAX_OPTION_SIZE = 312,\r
29 PXEBC_DHCP4_MAX_PACKET_SIZE = 1472,\r
30\r
31 PXEBC_DHCP4_S_PORT = 67,\r
32 PXEBC_DHCP4_C_PORT = 68,\r
33 PXEBC_BS_DOWNLOAD_PORT = 69,\r
34 PXEBC_BS_DISCOVER_PORT = 4011,\r
35\r
36 PXEBC_DHCP4_OPCODE_REQUEST = 1,\r
37 PXEBC_DHCP4_OPCODE_REPLY = 2,\r
38 PXEBC_DHCP4_MSG_TYPE_REQUEST = 3,\r
39 PXEBC_DHCP4_MAGIC = 0x63538263, // network byte order\r
40 //\r
41 // Dhcp Options\r
42 //\r
43 PXEBC_DHCP4_TAG_PAD = 0, // Pad Option\r
44 PXEBC_DHCP4_TAG_EOP = 255, // End Option\r
45 PXEBC_DHCP4_TAG_NETMASK = 1, // Subnet Mask\r
46 PXEBC_DHCP4_TAG_TIME_OFFSET = 2, // Time Offset from UTC\r
47 PXEBC_DHCP4_TAG_ROUTER = 3, // Router option,\r
48 PXEBC_DHCP4_TAG_TIME_SERVER = 4, // Time Server\r
49 PXEBC_DHCP4_TAG_NAME_SERVER = 5, // Name Server\r
50 PXEBC_DHCP4_TAG_DNS_SERVER = 6, // Domain Name Server\r
51 PXEBC_DHCP4_TAG_HOSTNAME = 12, // Host Name\r
52 PXEBC_DHCP4_TAG_BOOTFILE_LEN = 13, // Boot File Size\r
53 PXEBC_DHCP4_TAG_DUMP = 14, // Merit Dump File\r
54 PXEBC_DHCP4_TAG_DOMAINNAME = 15, // Domain Name\r
55 PXEBC_DHCP4_TAG_ROOTPATH = 17, // Root path\r
56 PXEBC_DHCP4_TAG_EXTEND_PATH = 18, // Extensions Path\r
57 PXEBC_DHCP4_TAG_EMTU = 22, // Maximum Datagram Reassembly Size\r
58 PXEBC_DHCP4_TAG_TTL = 23, // Default IP Time-to-live\r
59 PXEBC_DHCP4_TAG_BROADCAST = 28, // Broadcast Address\r
60 PXEBC_DHCP4_TAG_NIS_DOMAIN = 40, // Network Information Service Domain\r
61 PXEBC_DHCP4_TAG_NIS_SERVER = 41, // Network Information Servers\r
62 PXEBC_DHCP4_TAG_NTP_SERVER = 42, // Network Time Protocol Servers\r
63 PXEBC_DHCP4_TAG_VENDOR = 43, // Vendor Specific Information\r
64 PXEBC_DHCP4_TAG_REQUEST_IP = 50, // Requested IP Address\r
65 PXEBC_DHCP4_TAG_LEASE = 51, // IP Address Lease Time\r
66 PXEBC_DHCP4_TAG_OVERLOAD = 52, // Option Overload\r
67 PXEBC_DHCP4_TAG_MSG_TYPE = 53, // DHCP Message Type\r
68 PXEBC_DHCP4_TAG_SERVER_ID = 54, // Server Identifier\r
69 PXEBC_DHCP4_TAG_PARA_LIST = 55, // Parameter Request List\r
70 PXEBC_DHCP4_TAG_MAXMSG = 57, // Maximum DHCP Message Size\r
71 PXEBC_DHCP4_TAG_T1 = 58, // Renewal (T1) Time Value\r
72 PXEBC_DHCP4_TAG_T2 = 59, // Rebinding (T2) Time Value\r
73 PXEBC_DHCP4_TAG_CLASS_ID = 60, // Vendor class identifier\r
74 PXEBC_DHCP4_TAG_CLIENT_ID = 61, // Client-identifier\r
75 PXEBC_DHCP4_TAG_TFTP = 66, // TFTP server name\r
76 PXEBC_DHCP4_TAG_BOOTFILE = 67, // Bootfile name\r
77 PXEBC_PXE_DHCP4_TAG_ARCH = 93,\r
78 PXEBC_PXE_DHCP4_TAG_UNDI = 94,\r
79 PXEBC_PXE_DHCP4_TAG_UUID = 97,\r
80 //\r
81 // Sub-Options in Dhcp Vendor Option\r
82 //\r
83 PXEBC_VENDOR_TAG_MTFTP_IP = 1,\r
84 PXEBC_VENDOR_TAG_MTFTP_CPORT = 2,\r
85 PXEBC_VENDOR_TAG_MTFTP_SPORT = 3,\r
86 PXEBC_VENDOR_TAG_MTFTP_TIMEOUT = 4,\r
87 PXEBC_VENDOR_TAG_MTFTP_DELAY = 5,\r
88 PXEBC_VENDOR_TAG_DISCOVER_CTRL = 6,\r
89 PXEBC_VENDOR_TAG_DISCOVER_MCAST = 7,\r
90 PXEBC_VENDOR_TAG_BOOT_SERVERS = 8,\r
91 PXEBC_VENDOR_TAG_BOOT_MENU = 9,\r
92 PXEBC_VENDOR_TAG_MENU_PROMPT = 10,\r
93 PXEBC_VENDOR_TAG_MCAST_ALLOC = 11,\r
94 PXEBC_VENDOR_TAG_CREDENTIAL_TYPES = 12,\r
95 PXEBC_VENDOR_TAG_BOOT_ITEM = 71,\r
96\r
97 PXEBC_DHCP4_DISCOVER_INIT_TIMEOUT = 4,\r
98 PXEBC_DHCP4_DISCOVER_RETRIES = 4,\r
99\r
100 PXEBC_MAX_MENU_NUM = 24,\r
101 PXEBC_MAX_OFFER_NUM = 16,\r
102\r
103 PXEBC_BOOT_REQUEST_TIMEOUT = 1,\r
104 PXEBC_BOOT_REQUEST_RETRIES = 4,\r
105\r
106 PXEBC_DHCP4_OVERLOAD_FILE = 1,\r
107 PXEBC_DHCP4_OVERLOAD_SERVER_NAME = 2\r
108};\r
109\r
110//\r
111// The array index of the DHCP4 option tag interested\r
112//\r
113enum {\r
114 PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN,\r
115 PXEBC_DHCP4_TAG_INDEX_VENDOR,\r
116 PXEBC_DHCP4_TAG_INDEX_OVERLOAD,\r
117 PXEBC_DHCP4_TAG_INDEX_MSG_TYPE,\r
118 PXEBC_DHCP4_TAG_INDEX_SERVER_ID,\r
119 PXEBC_DHCP4_TAG_INDEX_CLASS_ID,\r
120 PXEBC_DHCP4_TAG_INDEX_BOOTFILE,\r
121 PXEBC_DHCP4_TAG_INDEX_MAX\r
122};\r
123\r
124//\r
125// The type of DHCP OFFER, arranged by priority, PXE10 has the highest priority.\r
126//\r
127enum {\r
128 DHCP4_PACKET_TYPE_PXE10,\r
129 DHCP4_PACKET_TYPE_WFM11A,\r
130 DHCP4_PACKET_TYPE_BINL,\r
131 DHCP4_PACKET_TYPE_DHCP_ONLY,\r
132 DHCP4_PACKET_TYPE_MAX,\r
133 DHCP4_PACKET_TYPE_BOOTP = DHCP4_PACKET_TYPE_MAX\r
134};\r
135\r
136#define BIT(x) (1 << x)\r
137#define CTRL(x) (0x1F & (x))\r
138\r
139//\r
140// WfM11a options\r
141//\r
142#define MTFTP_VENDOR_OPTION_BIT_MAP (BIT (PXEBC_VENDOR_TAG_MTFTP_IP) | \\r
143 BIT (PXEBC_VENDOR_TAG_MTFTP_CPORT) | \\r
144 BIT (PXEBC_VENDOR_TAG_MTFTP_SPORT) | \\r
145 BIT (PXEBC_VENDOR_TAG_MTFTP_TIMEOUT) | \\r
146 BIT (PXEBC_VENDOR_TAG_MTFTP_DELAY))\r
147//\r
148// Discoverty options\r
149//\r
150#define DISCOVER_VENDOR_OPTION_BIT_MAP (BIT (PXEBC_VENDOR_TAG_DISCOVER_CTRL) | \\r
151 BIT (PXEBC_VENDOR_TAG_DISCOVER_MCAST) | \\r
152 BIT (PXEBC_VENDOR_TAG_BOOT_SERVERS) | \\r
153 BIT (PXEBC_VENDOR_TAG_BOOT_MENU) | \\r
154 BIT (PXEBC_VENDOR_TAG_MENU_PROMPT))\r
155\r
156#define IS_VALID_BOOT_PROMPT(x) \\r
157 ((((x)[0]) & BIT (PXEBC_VENDOR_TAG_MENU_PROMPT)) == BIT (PXEBC_VENDOR_TAG_MENU_PROMPT))\r
158\r
159#define IS_VALID_BOOT_MENU(x) \\r
160 ((((x)[0]) & BIT (PXEBC_VENDOR_TAG_BOOT_MENU)) == BIT (PXEBC_VENDOR_TAG_BOOT_MENU))\r
161\r
162#define IS_VALID_MTFTP_VENDOR_OPTION(x) \\r
163 (((UINT32) ((x)[0]) & MTFTP_VENDOR_OPTION_BIT_MAP) == MTFTP_VENDOR_OPTION_BIT_MAP)\r
164\r
165#define IS_VALID_DISCOVER_VENDOR_OPTION(x) (((UINT32) ((x)[0]) & DISCOVER_VENDOR_OPTION_BIT_MAP) != 0)\r
166\r
167#define IS_VALID_CREDENTIAL_VENDOR_OPTION(x) \\r
168 (((UINT32) ((x)[0]) & BIT (PXEBC_VENDOR_TAG_CREDENTIAL_TYPES)) == BIT (PXEBC_VENDOR_TAG_CREDENTIAL_TYPES))\r
169\r
170#define IS_VALID_BOOTITEM_VENDOR_OPTION(x) \\r
171 (((UINT32) ((x)[PXEBC_VENDOR_TAG_BOOT_ITEM / 32]) & BIT (PXEBC_VENDOR_TAG_BOOT_ITEM % 32)) \\r
172 == BIT (PXEBC_VENDOR_TAG_BOOT_ITEM % 32))\r
173\r
174#define IS_DISABLE_BCAST_DISCOVER(x) (((x) & BIT (0)) == BIT (0))\r
175#define IS_DISABLE_MCAST_DISCOVER(x) (((x) & BIT (1)) == BIT (1))\r
176#define IS_ENABLE_USE_SERVER_LIST(x) (((x) & BIT (2)) == BIT (2))\r
177#define IS_ENABLE_BOOT_FILE_NAME(x) (((x) & BIT (3)) == BIT (3))\r
178\r
179#define SET_VENDOR_OPTION_BIT_MAP(x, y) (((x)[(y) / 32]) = (UINT32) ((x)[(y) / 32]) | BIT ((y) % 32))\r
180\r
181#pragma pack(1)\r
182typedef struct {\r
183 UINT8 ParaList[135];\r
184} PXEBC_DHCP4_OPTION_PARA;\r
185\r
186typedef struct {\r
187 UINT16 Size;\r
188} PXEBC_DHCP4_OPTION_MAX_MESG_SIZE;\r
189\r
190typedef struct {\r
191 UINT8 Type;\r
192 UINT8 MajorVer;\r
193 UINT8 MinorVer;\r
194} PXEBC_DHCP4_OPTION_UNDI;\r
195\r
196typedef struct {\r
197 UINT8 Type;\r
198} PXEBC_DHCP4_OPTION_MESG;\r
199\r
200typedef struct {\r
201 UINT16 Type;\r
202} PXEBC_DHCP4_OPTION_ARCH;\r
203\r
204#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:?????:????:??????"\r
205\r
206typedef struct {\r
207 UINT8 ClassIdentifier[10];\r
208 UINT8 ArchitecturePrefix[5];\r
209 UINT8 ArchitectureType[5];\r
210 UINT8 Lit3[1];\r
211 UINT8 InterfaceName[4];\r
212 UINT8 Lit4[1];\r
213 UINT8 UndiMajor[3];\r
214 UINT8 UndiMinor[3];\r
215} PXEBC_DHCP4_OPTION_CLID;\r
216\r
217typedef struct {\r
218 UINT8 Type;\r
219 UINT8 Guid[16];\r
220} PXEBC_DHCP4_OPTION_UUID;\r
221\r
222typedef struct {\r
223 UINT16 Type;\r
224 UINT16 Layer;\r
225} PXEBC_OPTION_BOOT_ITEM;\r
226\r
227#pragma pack()\r
228\r
229typedef union {\r
230 PXEBC_DHCP4_OPTION_PARA *Para;\r
231 PXEBC_DHCP4_OPTION_UNDI *Undi;\r
232 PXEBC_DHCP4_OPTION_ARCH *Arch;\r
233 PXEBC_DHCP4_OPTION_CLID *Clid;\r
234 PXEBC_DHCP4_OPTION_UUID *Uuid;\r
235 PXEBC_DHCP4_OPTION_MESG *Mesg;\r
236 PXEBC_DHCP4_OPTION_MAX_MESG_SIZE *MaxMesgSize;\r
237} PXEBC_DHCP4_OPTION_ENTRY;\r
238\r
239typedef struct {\r
240 UINT16 Type;\r
241 UINT8 IpCnt;\r
242 EFI_IPv4_ADDRESS IpAddr[1];\r
243} PXEBC_BOOT_SVR_ENTRY;\r
244\r
245typedef struct {\r
246 UINT16 Type;\r
247 UINT8 DescLen;\r
248 UINT8 DescStr[1];\r
249} PXEBC_BOOT_MENU_ENTRY;\r
250\r
251typedef struct {\r
252 UINT8 Timeout;\r
253 UINT8 Prompt[1];\r
254} PXEBC_MENU_PROMPT;\r
255\r
256typedef struct {\r
257 UINT32 BitMap[8];\r
258 EFI_IPv4_ADDRESS MtftpIp;\r
259 UINT16 MtftpCPort;\r
260 UINT16 MtftpSPort;\r
261 UINT8 MtftpTimeout;\r
262 UINT8 MtftpDelay;\r
263 UINT8 DiscoverCtrl;\r
264 EFI_IPv4_ADDRESS DiscoverMcastIp;\r
265 EFI_IPv4_ADDRESS McastIpBase;\r
266 UINT16 McastIpBlock;\r
267 UINT16 McastIpRange;\r
268 UINT16 BootSrvType;\r
269 UINT16 BootSrvLayer;\r
270 PXEBC_BOOT_SVR_ENTRY *BootSvr;\r
271 UINT8 BootSvrLen;\r
272 PXEBC_BOOT_MENU_ENTRY *BootMenu;\r
273 UINT8 BootMenuLen;\r
274 PXEBC_MENU_PROMPT *MenuPrompt;\r
275 UINT8 MenuPromptLen;\r
276 UINT32 *CredType;\r
277 UINT8 CredTypeLen;\r
278} PXEBC_VENDOR_OPTION;\r
279\r
280#define PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE (EFI_FIELD_OFFSET (EFI_DHCP4_PACKET, Dhcp4) + PXEBC_DHCP4_MAX_PACKET_SIZE)\r
281\r
282typedef struct {\r
283 union {\r
284 EFI_DHCP4_PACKET Offer;\r
285 EFI_DHCP4_PACKET Ack;\r
286 UINT8 Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE];\r
287 } Packet;\r
288\r
289 BOOLEAN IsPxeOffer;\r
290 UINT8 OfferType;\r
291 EFI_DHCP4_PACKET_OPTION *Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_MAX];\r
292 PXEBC_VENDOR_OPTION PxeVendorOption;\r
293} PXEBC_CACHED_DHCP4_PACKET;\r
294\r
295#define GET_NEXT_DHCP_OPTION(Opt) \\r
296 (EFI_DHCP4_PACKET_OPTION *) ((UINT8 *) (Opt) + sizeof (EFI_DHCP4_PACKET_OPTION) + (Opt)->Length - 1)\r
297\r
298#define GET_OPTION_BUFFER_LEN(Pkt) ((Pkt)->Length - sizeof (EFI_DHCP4_HEADER) - 4)\r
299#define IS_PROXY_DHCP_OFFER(Offer) EFI_IP4_EQUAL (&((Offer)->Dhcp4.Header.YourAddr), &mZeroIp4Addr)\r
300\r
301#define GET_NEXT_BOOT_SVR_ENTRY(Ent) \\r
302 (PXEBC_BOOT_SVR_ENTRY *) ((UINT8 *) Ent + sizeof (*(Ent)) + ((Ent)->IpCnt - 1) * sizeof (EFI_IPv4_ADDRESS))\r
303\r
304VOID\r
305PxeBcInitSeedPacket (\r
306 IN EFI_DHCP4_PACKET *Seed,\r
307 IN EFI_UDP4_PROTOCOL *Udp4\r
308 )\r
309/*++\r
310\r
311Routine Description:\r
312\r
313 GC_NOTO: Add function description\r
314\r
315Arguments:\r
316\r
317 Seed - GC_NOTO: add argument description\r
318 Udp4 - GC_NOTO: add argument description\r
319\r
320Returns:\r
321\r
322 GC_NOTO: add return values\r
323\r
324--*/\r
325;\r
326\r
327\r
328/**\r
329 GC_NOTO: Add function description\r
330\r
331 @param CachedPacket GC_NOTO: add argument description\r
332\r
333 @return GC_NOTO: add return values\r
334\r
335**/\r
336BOOLEAN\r
337PxeBcParseCachedDhcpPacket (\r
338 IN PXEBC_CACHED_DHCP4_PACKET *CachedPacket\r
339 )\r
340;\r
341\r
342\r
343/**\r
344 GC_NOTO: Add function description\r
345\r
346 @param Private GC_NOTO: add argument description\r
347\r
348 @return GC_NOTO: add return values\r
349\r
350**/\r
351EFI_STATUS\r
352PxeBcCheckSelectedOffer (\r
353 IN PXEBC_PRIVATE_DATA *Private\r
354 )\r
355;\r
356\r
357\r
358/**\r
359 GC_NOTO: Add function description\r
360\r
361 @param This GC_NOTO: add argument description\r
362 @param Context GC_NOTO: add argument description\r
363 @param CurrentState GC_NOTO: add argument description\r
364 @param Dhcp4Event GC_NOTO: add argument description\r
365 @param Packet GC_NOTO: add argument description\r
366 @param NewPacket GC_NOTO: add argument description\r
367\r
368 @return GC_NOTO: add return values\r
369\r
370**/\r
371EFI_STATUS\r
372PxeBcDhcpCallBack (\r
373 IN EFI_DHCP4_PROTOCOL * This,\r
374 IN VOID *Context,\r
375 IN EFI_DHCP4_STATE CurrentState,\r
376 IN EFI_DHCP4_EVENT Dhcp4Event,\r
377 IN EFI_DHCP4_PACKET * Packet OPTIONAL,\r
378 OUT EFI_DHCP4_PACKET **NewPacket OPTIONAL\r
379 )\r
380;\r
381\r
382\r
383/**\r
384 GC_NOTO: Add function description\r
385\r
386 @param Private GC_NOTO: add argument description\r
387 @param Type GC_NOTO: add argument description\r
388 @param Layer GC_NOTO: add argument description\r
389 @param UseBis GC_NOTO: add argument description\r
390 @param DestIp GC_NOTO: add argument description\r
391 @param IpCount GC_NOTO: add argument description\r
392 @param SrvList GC_NOTO: add argument description\r
393 @param IsDiscv GC_NOTO: add argument description\r
394 @param Reply GC_NOTO: add argument description\r
395\r
396 @return GC_NOTO: add return values\r
397\r
398**/\r
399EFI_STATUS\r
400PxeBcDiscvBootService (\r
401 IN PXEBC_PRIVATE_DATA * Private,\r
402 IN UINT16 Type,\r
403 IN UINT16 *Layer,\r
404 IN BOOLEAN UseBis,\r
405 IN EFI_IP_ADDRESS * DestIp,\r
406 IN UINT16 IpCount,\r
407 IN EFI_PXE_BASE_CODE_SRVLIST * SrvList,\r
408 IN BOOLEAN IsDiscv,\r
409 OUT EFI_DHCP4_PACKET * Reply OPTIONAL\r
410 )\r
411;\r
412\r
413\r
414/**\r
415 GC_NOTO: Add function description\r
416\r
417 @param Private GC_NOTO: add argument description\r
418 @param OptList GC_NOTO: add argument description\r
419 @param IsDhcpDiscover GC_NOTO: add argument description\r
420\r
421 @return GC_NOTO: add return values\r
422\r
423**/\r
424UINT32\r
425PxeBcBuildDhcpOptions (\r
426 IN PXEBC_PRIVATE_DATA *Private,\r
427 IN EFI_DHCP4_PACKET_OPTION **OptList,\r
428 IN BOOLEAN IsDhcpDiscover\r
429 )\r
430;\r
431\r
432\r
433/**\r
434 GC_NOTO: Add function description\r
435\r
436 @param OptList GC_NOTO: add argument description\r
437 @param Type GC_NOTO: add argument description\r
438 @param Layer GC_NOTO: add argument description\r
439 @param OptLen GC_NOTO: add argument description\r
440\r
441 @return GC_NOTO: add return values\r
442\r
443**/\r
444VOID\r
445PxeBcCreateBootOptions (\r
446 IN EFI_DHCP4_PACKET_OPTION *OptList,\r
447 IN UINT16 Type,\r
448 IN UINT16 *Layer,\r
449 OUT UINT32 *OptLen\r
450 )\r
451;\r
452\r
453\r
454/**\r
455 GC_NOTO: Add function description\r
456\r
457 @param Buffer GC_NOTO: add argument description\r
458 @param Length GC_NOTO: add argument description\r
459 @param OptTag GC_NOTO: add argument description\r
460\r
461 @return GC_NOTO: add return values\r
462\r
463**/\r
464EFI_DHCP4_PACKET_OPTION *\r
465PxeBcParseExtendOptions (\r
466 IN UINT8 *Buffer,\r
467 IN UINT32 Length,\r
468 IN UINT8 OptTag\r
469 )\r
470;\r
471\r
472\r
473/**\r
474 GC_NOTO: Add function description\r
475\r
476 @param Dhcp4Option GC_NOTO: add argument description\r
477 @param VendorOption GC_NOTO: add argument description\r
478\r
479 @return GC_NOTO: add return values\r
480\r
481**/\r
482BOOLEAN\r
483PxeBcParseVendorOptions (\r
484 IN EFI_DHCP4_PACKET_OPTION *Dhcp4Option,\r
485 IN PXEBC_VENDOR_OPTION *VendorOption\r
486 )\r
487;\r
488\r
489\r
490/**\r
491 GC_NOTO: Add function description\r
492\r
493 @param Private GC_NOTO: add argument description\r
494 @param Info GC_NOTO: add argument description\r
495 @param Type GC_NOTO: add argument description\r
496\r
497 @return GC_NOTO: add return values\r
498\r
499**/\r
500EFI_STATUS\r
501PxeBcSelectBootServers (\r
502 IN PXEBC_PRIVATE_DATA *Private,\r
503 OUT EFI_PXE_BASE_CODE_DISCOVER_INFO **Info,\r
504 OUT UINT16 *Type\r
505 )\r
506;\r
507\r
508\r
509/**\r
510 GC_NOTO: Add function description\r
511\r
512 @param Private GC_NOTO: add argument description\r
513\r
514 @return GC_NOTO: add return values\r
515\r
516**/\r
517EFI_STATUS\r
518PxeBcSelectBootPrompt (\r
519 IN PXEBC_PRIVATE_DATA *Private\r
520 )\r
521;\r
522\r
523\r
524/**\r
525 GC_NOTO: Add function description\r
526\r
527 @param Private GC_NOTO: add argument description\r
528 @param Type GC_NOTO: add argument description\r
529\r
530 @return GC_NOTO: add return values\r
531\r
532**/\r
533EFI_STATUS\r
534PxeBcSelectBootMenu (\r
535 IN PXEBC_PRIVATE_DATA *Private,\r
536 OUT UINT16 *Type,\r
537 IN BOOLEAN UseDefaultItem\r
538 )\r
539;\r
540\r
541#endif\r
542\r