Rev 2726 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2726 | vana | 1 | #ifndef _EFIPXEBC_H |
2 | #define _EFIPXEBC_H |
||
3 | |||
4 | /*++ |
||
5 | |||
6 | Copyright (c) 1998 Intel Corporation |
||
7 | |||
8 | Module Name: |
||
9 | |||
10 | efipxebc.h |
||
11 | |||
12 | Abstract: |
||
13 | |||
14 | EFI PXE Base Code Protocol |
||
15 | |||
16 | |||
17 | |||
18 | Revision History |
||
19 | |||
20 | --*/ |
||
21 | |||
22 | // |
||
23 | // PXE Base Code protocol |
||
24 | // |
||
25 | |||
26 | #define EFI_PXE_BASE_CODE_PROTOCOL \ |
||
27 | { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } |
||
28 | |||
29 | INTERFACE_DECL(_EFI_PXE_BASE_CODE); |
||
30 | |||
31 | #define DEFAULT_TTL 4 |
||
32 | #define DEFAULT_ToS 0 |
||
33 | // |
||
34 | // Address definitions |
||
35 | // |
||
36 | |||
37 | typedef union { |
||
38 | UINT32 Addr[4]; |
||
39 | EFI_IPv4_ADDRESS v4; |
||
40 | EFI_IPv6_ADDRESS v6; |
||
41 | } EFI_IP_ADDRESS; |
||
42 | |||
43 | typedef UINT16 EFI_PXE_BASE_CODE_UDP_PORT; |
||
44 | |||
45 | // |
||
46 | // Packet definitions |
||
47 | // |
||
48 | |||
49 | typedef struct { |
||
50 | UINT8 BootpOpcode; |
||
51 | UINT8 BootpHwType; |
||
52 | UINT8 BootpHwAddrLen; |
||
53 | UINT8 BootpGateHops; |
||
54 | UINT32 BootpIdent; |
||
55 | UINT16 BootpSeconds; |
||
56 | UINT16 BootpFlags; |
||
57 | UINT8 BootpCiAddr[4]; |
||
58 | UINT8 BootpYiAddr[4]; |
||
59 | UINT8 BootpSiAddr[4]; |
||
60 | UINT8 BootpGiAddr[4]; |
||
61 | UINT8 BootpHwAddr[16]; |
||
62 | UINT8 BootpSrvName[64]; |
||
63 | UINT8 BootpBootFile[128]; |
||
64 | UINT32 DhcpMagik; |
||
65 | UINT8 DhcpOptions[56]; |
||
66 | } EFI_PXE_BASE_CODE_DHCPV4_PACKET; |
||
67 | |||
68 | // TBD in EFI v1.1 |
||
69 | //typedef struct { |
||
70 | // UINT8 reserved; |
||
71 | //} EFI_PXE_BASE_CODE_DHCPV6_PACKET; |
||
72 | |||
73 | typedef union { |
||
74 | UINT8 Raw[1472]; |
||
75 | EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4; |
||
76 | // EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6; |
||
77 | } EFI_PXE_BASE_CODE_PACKET; |
||
78 | |||
79 | typedef struct { |
||
80 | UINT8 Type; |
||
81 | UINT8 Code; |
||
82 | UINT16 Checksum; |
||
83 | union { |
||
84 | UINT32 reserved; |
||
85 | UINT32 Mtu; |
||
86 | UINT32 Pointer; |
||
87 | struct { |
||
88 | UINT16 Identifier; |
||
89 | UINT16 Sequence; |
||
90 | } Echo; |
||
91 | } u; |
||
92 | UINT8 Data[494]; |
||
93 | } EFI_PXE_BASE_CODE_ICMP_ERROR; |
||
94 | |||
95 | typedef struct { |
||
96 | UINT8 ErrorCode; |
||
97 | CHAR8 ErrorString[127]; |
||
98 | } EFI_PXE_BASE_CODE_TFTP_ERROR; |
||
99 | |||
100 | // |
||
101 | // IP Receive Filter definitions |
||
102 | // |
||
103 | #define EFI_PXE_BASE_CODE_MAX_IPCNT 8 |
||
104 | typedef struct { |
||
105 | UINT8 Filters; |
||
106 | UINT8 IpCnt; |
||
107 | UINT16 reserved; |
||
108 | EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT]; |
||
109 | } EFI_PXE_BASE_CODE_IP_FILTER; |
||
110 | |||
111 | #define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001 |
||
112 | #define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002 |
||
113 | #define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004 |
||
114 | #define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008 |
||
115 | |||
116 | // |
||
117 | // ARP Cache definitions |
||
118 | // |
||
119 | |||
120 | typedef struct { |
||
121 | EFI_IP_ADDRESS IpAddr; |
||
122 | EFI_MAC_ADDRESS MacAddr; |
||
123 | } EFI_PXE_BASE_CODE_ARP_ENTRY; |
||
124 | |||
125 | typedef struct { |
||
126 | EFI_IP_ADDRESS IpAddr; |
||
127 | EFI_IP_ADDRESS SubnetMask; |
||
128 | EFI_IP_ADDRESS GwAddr; |
||
129 | } EFI_PXE_BASE_CODE_ROUTE_ENTRY; |
||
130 | |||
131 | // |
||
132 | // UDP definitions |
||
133 | // |
||
134 | |||
135 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP 0x0001 |
||
136 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT 0x0002 |
||
137 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP 0x0004 |
||
138 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT 0x0008 |
||
139 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER 0x0010 |
||
140 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_MAY_FRAGMENT 0x0020 |
||
141 | |||
142 | // |
||
143 | // Discover() definitions |
||
144 | // |
||
145 | |||
146 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP 0 |
||
147 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1 |
||
148 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM 2 |
||
149 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI 3 |
||
150 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4 |
||
151 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSoD 5 |
||
152 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM 6 |
||
153 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG 7 |
||
154 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8 |
||
155 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 9 |
||
156 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 10 |
||
157 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 11 |
||
158 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 12 |
||
159 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL 13 |
||
160 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT 14 |
||
161 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO 15 |
||
162 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT 16 |
||
163 | // |
||
164 | // 17 through 32767 are reserved |
||
165 | // 32768 through 65279 are for vendor use |
||
166 | // 65280 through 65534 are reserved |
||
167 | // |
||
168 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535 |
||
169 | |||
170 | #define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK 0x7FFF |
||
171 | #define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL 0x0000 |
||
172 | |||
173 | |||
174 | typedef struct { |
||
175 | UINT16 Type; |
||
176 | BOOLEAN AcceptAnyResponse; |
||
177 | UINT8 Reserved; |
||
178 | EFI_IP_ADDRESS IpAddr; |
||
179 | } EFI_PXE_BASE_CODE_SRVLIST; |
||
180 | |||
181 | typedef struct { |
||
182 | BOOLEAN UseMCast; |
||
183 | BOOLEAN UseBCast; |
||
184 | BOOLEAN UseUCast; |
||
185 | BOOLEAN MustUseList; |
||
186 | EFI_IP_ADDRESS ServerMCastIp; |
||
187 | UINT16 IpCnt; |
||
188 | EFI_PXE_BASE_CODE_SRVLIST SrvList[1]; |
||
189 | } EFI_PXE_BASE_CODE_DISCOVER_INFO; |
||
190 | |||
191 | // |
||
192 | // Mtftp() definitions |
||
193 | // |
||
194 | |||
195 | typedef enum { |
||
196 | EFI_PXE_BASE_CODE_TFTP_FIRST, |
||
197 | EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE, |
||
198 | EFI_PXE_BASE_CODE_TFTP_READ_FILE, |
||
199 | EFI_PXE_BASE_CODE_TFTP_WRITE_FILE, |
||
200 | EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY, |
||
201 | EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE, |
||
202 | EFI_PXE_BASE_CODE_MTFTP_READ_FILE, |
||
203 | EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY, |
||
204 | EFI_PXE_BASE_CODE_MTFTP_LAST |
||
205 | } EFI_PXE_BASE_CODE_TFTP_OPCODE; |
||
206 | |||
207 | typedef struct { |
||
208 | EFI_IP_ADDRESS MCastIp; |
||
209 | EFI_PXE_BASE_CODE_UDP_PORT CPort; |
||
210 | EFI_PXE_BASE_CODE_UDP_PORT SPort; |
||
211 | UINT16 ListenTimeout; |
||
212 | UINT16 TransmitTimeout; |
||
213 | } EFI_PXE_BASE_CODE_MTFTP_INFO; |
||
214 | |||
215 | // |
||
216 | // PXE Base Code Mode structure |
||
217 | // |
||
218 | |||
219 | #define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 |
||
220 | #define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 |
||
221 | |||
222 | typedef struct { |
||
223 | BOOLEAN Started; |
||
224 | BOOLEAN Ipv6Available; |
||
225 | BOOLEAN Ipv6Supported; |
||
226 | BOOLEAN UsingIpv6; |
||
227 | BOOLEAN BisSupported; |
||
228 | BOOLEAN BisDetected; |
||
229 | BOOLEAN AutoArp; |
||
230 | BOOLEAN SendGUID; |
||
231 | BOOLEAN DhcpDiscoverValid; |
||
232 | BOOLEAN DhcpAckReceived; |
||
233 | BOOLEAN ProxyOfferReceived; |
||
234 | BOOLEAN PxeDiscoverValid; |
||
235 | BOOLEAN PxeReplyReceived; |
||
236 | BOOLEAN PxeBisReplyReceived; |
||
237 | BOOLEAN IcmpErrorReceived; |
||
238 | BOOLEAN TftpErrorReceived; |
||
239 | BOOLEAN MakeCallbacks; |
||
240 | UINT8 TTL; |
||
241 | UINT8 ToS; |
||
242 | EFI_IP_ADDRESS StationIp; |
||
243 | EFI_IP_ADDRESS SubnetMask; |
||
244 | EFI_PXE_BASE_CODE_PACKET DhcpDiscover; |
||
245 | EFI_PXE_BASE_CODE_PACKET DhcpAck; |
||
246 | EFI_PXE_BASE_CODE_PACKET ProxyOffer; |
||
247 | EFI_PXE_BASE_CODE_PACKET PxeDiscover; |
||
248 | EFI_PXE_BASE_CODE_PACKET PxeReply; |
||
249 | EFI_PXE_BASE_CODE_PACKET PxeBisReply; |
||
250 | EFI_PXE_BASE_CODE_IP_FILTER IpFilter; |
||
251 | UINT32 ArpCacheEntries; |
||
252 | EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]; |
||
253 | UINT32 RouteTableEntries; |
||
254 | EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]; |
||
255 | EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError; |
||
256 | EFI_PXE_BASE_CODE_TFTP_ERROR TftpError; |
||
257 | } EFI_PXE_BASE_CODE_MODE; |
||
258 | |||
259 | // |
||
260 | // PXE Base Code Interface Function definitions |
||
261 | // |
||
262 | |||
263 | typedef |
||
264 | EFI_STATUS |
||
265 | (EFIAPI *EFI_PXE_BASE_CODE_START) ( |
||
266 | IN struct _EFI_PXE_BASE_CODE *This, |
||
267 | IN BOOLEAN UseIpv6 |
||
268 | ); |
||
269 | |||
270 | typedef |
||
271 | EFI_STATUS |
||
272 | (EFIAPI *EFI_PXE_BASE_CODE_STOP) ( |
||
273 | IN struct _EFI_PXE_BASE_CODE *This |
||
274 | ); |
||
275 | |||
276 | typedef |
||
277 | EFI_STATUS |
||
278 | (EFIAPI *EFI_PXE_BASE_CODE_DHCP) ( |
||
279 | IN struct _EFI_PXE_BASE_CODE *This, |
||
280 | IN BOOLEAN SortOffers |
||
281 | ); |
||
282 | |||
283 | typedef |
||
284 | EFI_STATUS |
||
285 | (EFIAPI *EFI_PXE_BASE_CODE_DISCOVER) ( |
||
286 | IN struct _EFI_PXE_BASE_CODE *This, |
||
287 | IN UINT16 Type, |
||
288 | IN UINT16 *Layer, |
||
289 | IN BOOLEAN UseBis, |
||
290 | IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO *Info OPTIONAL |
||
291 | ); |
||
292 | |||
293 | typedef |
||
294 | EFI_STATUS |
||
295 | (EFIAPI *EFI_PXE_BASE_CODE_MTFTP) ( |
||
296 | IN struct _EFI_PXE_BASE_CODE *This, |
||
297 | IN EFI_PXE_BASE_CODE_TFTP_OPCODE Operation, |
||
298 | IN OUT VOID *BufferPtr OPTIONAL, |
||
299 | IN BOOLEAN Overwrite, |
||
300 | IN OUT UINTN *BufferSize, |
||
301 | IN UINTN *BlockSize OPTIONAL, |
||
302 | IN EFI_IP_ADDRESS *ServerIp, |
||
303 | IN UINT8 *Filename, |
||
304 | IN EFI_PXE_BASE_CODE_MTFTP_INFO *Info OPTIONAL, |
||
305 | IN BOOLEAN DontUseBuffer |
||
306 | ); |
||
307 | |||
308 | typedef |
||
309 | EFI_STATUS |
||
310 | (EFIAPI *EFI_PXE_BASE_CODE_UDP_WRITE) ( |
||
311 | IN struct _EFI_PXE_BASE_CODE *This, |
||
312 | IN UINT16 OpFlags, |
||
313 | IN EFI_IP_ADDRESS *DestIp, |
||
314 | IN EFI_PXE_BASE_CODE_UDP_PORT *DestPort, |
||
315 | IN EFI_IP_ADDRESS *GatewayIp, OPTIONAL |
||
316 | IN EFI_IP_ADDRESS *SrcIp, OPTIONAL |
||
317 | IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, OPTIONAL |
||
318 | IN UINTN *HeaderSize, OPTIONAL |
||
319 | IN VOID *HeaderPtr, OPTIONAL |
||
320 | IN UINTN *BufferSize, |
||
321 | IN VOID *BufferPtr |
||
322 | ); |
||
323 | |||
324 | typedef |
||
325 | EFI_STATUS |
||
326 | (EFIAPI *EFI_PXE_BASE_CODE_UDP_READ) ( |
||
327 | IN struct _EFI_PXE_BASE_CODE *This, |
||
328 | IN UINT16 OpFlags, |
||
329 | IN OUT EFI_IP_ADDRESS *DestIp, OPTIONAL |
||
330 | IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort, OPTIONAL |
||
331 | IN OUT EFI_IP_ADDRESS *SrcIp, OPTIONAL |
||
332 | IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, OPTIONAL |
||
333 | IN UINTN *HeaderSize, OPTIONAL |
||
334 | IN VOID *HeaderPtr, OPTIONAL |
||
335 | IN OUT UINTN *BufferSize, |
||
336 | IN VOID *BufferPtr |
||
337 | ); |
||
338 | |||
339 | typedef |
||
340 | EFI_STATUS |
||
341 | (EFIAPI *EFI_PXE_BASE_CODE_SET_IP_FILTER) ( |
||
342 | IN struct _EFI_PXE_BASE_CODE *This, |
||
343 | IN EFI_PXE_BASE_CODE_IP_FILTER *NewFilter |
||
344 | ); |
||
345 | |||
346 | typedef |
||
347 | EFI_STATUS |
||
348 | (EFIAPI *EFI_PXE_BASE_CODE_ARP) ( |
||
349 | IN struct _EFI_PXE_BASE_CODE *This, |
||
350 | IN EFI_IP_ADDRESS *IpAddr, |
||
351 | IN EFI_MAC_ADDRESS *MacAddr OPTIONAL |
||
352 | ); |
||
353 | |||
354 | typedef |
||
355 | EFI_STATUS |
||
356 | (EFIAPI *EFI_PXE_BASE_CODE_SET_PARAMETERS) ( |
||
357 | IN struct _EFI_PXE_BASE_CODE *This, |
||
358 | IN BOOLEAN *NewAutoArp, OPTIONAL |
||
359 | IN BOOLEAN *NewSendGUID, OPTIONAL |
||
360 | IN UINT8 *NewTTL, OPTIONAL |
||
361 | IN UINT8 *NewToS, OPTIONAL |
||
362 | IN BOOLEAN *NewMakeCallback OPTIONAL |
||
363 | ); |
||
364 | |||
365 | typedef |
||
366 | EFI_STATUS |
||
367 | (EFIAPI *EFI_PXE_BASE_CODE_SET_STATION_IP) ( |
||
368 | IN struct _EFI_PXE_BASE_CODE *This, |
||
369 | IN EFI_IP_ADDRESS *NewStationIp, OPTIONAL |
||
370 | IN EFI_IP_ADDRESS *NewSubnetMask OPTIONAL |
||
371 | ); |
||
372 | |||
373 | typedef |
||
374 | EFI_STATUS |
||
375 | (EFIAPI *EFI_PXE_BASE_CODE_SET_PACKETS) ( |
||
376 | IN struct _EFI_PXE_BASE_CODE *This, |
||
377 | BOOLEAN *NewDhcpDiscoverValid, OPTIONAL |
||
378 | BOOLEAN *NewDhcpAckReceived, OPTIONAL |
||
379 | BOOLEAN *NewProxyOfferReceived, OPTIONAL |
||
380 | BOOLEAN *NewPxeDiscoverValid, OPTIONAL |
||
381 | BOOLEAN *NewPxeReplyReceived, OPTIONAL |
||
382 | BOOLEAN *NewPxeBisReplyReceived,OPTIONAL |
||
383 | IN EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover, OPTIONAL |
||
384 | IN EFI_PXE_BASE_CODE_PACKET *NewDhcpAck, OPTIONAL |
||
385 | IN EFI_PXE_BASE_CODE_PACKET *NewProxyOffer, OPTIONAL |
||
386 | IN EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover, OPTIONAL |
||
387 | IN EFI_PXE_BASE_CODE_PACKET *NewPxeReply, OPTIONAL |
||
388 | IN EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply OPTIONAL |
||
389 | ); |
||
390 | |||
391 | // |
||
392 | // PXE Base Code Protocol structure |
||
393 | // |
||
394 | |||
395 | #define EFI_PXE_BASE_CODE_INTERFACE_REVISION 0x00010000 |
||
396 | |||
397 | typedef struct _EFI_PXE_BASE_CODE { |
||
398 | UINT64 Revision; |
||
399 | EFI_PXE_BASE_CODE_START Start; |
||
400 | EFI_PXE_BASE_CODE_STOP Stop; |
||
401 | EFI_PXE_BASE_CODE_DHCP Dhcp; |
||
402 | EFI_PXE_BASE_CODE_DISCOVER Discover; |
||
403 | EFI_PXE_BASE_CODE_MTFTP Mtftp; |
||
404 | EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite; |
||
405 | EFI_PXE_BASE_CODE_UDP_READ UdpRead; |
||
406 | EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter; |
||
407 | EFI_PXE_BASE_CODE_ARP Arp; |
||
408 | EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters; |
||
409 | EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp; |
||
410 | EFI_PXE_BASE_CODE_SET_PACKETS SetPackets; |
||
411 | EFI_PXE_BASE_CODE_MODE *Mode; |
||
412 | } EFI_PXE_BASE_CODE; |
||
413 | |||
414 | // |
||
415 | // Call Back Definitions |
||
416 | // |
||
417 | |||
418 | #define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL \ |
||
419 | { 0x245dca21, 0xfb7b, 0x11d3, {0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } |
||
420 | |||
421 | // |
||
422 | // Revision Number |
||
423 | // |
||
424 | |||
425 | #define EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION 0x00010000 |
||
426 | |||
427 | INTERFACE_DECL(_EFI_PXE_BASE_CODE_CALLBACK); |
||
428 | |||
429 | typedef enum { |
||
430 | EFI_PXE_BASE_CODE_FUNCTION_FIRST, |
||
431 | EFI_PXE_BASE_CODE_FUNCTION_DHCP, |
||
432 | EFI_PXE_BASE_CODE_FUNCTION_DISCOVER, |
||
433 | EFI_PXE_BASE_CODE_FUNCTION_MTFTP, |
||
434 | EFI_PXE_BASE_CODE_FUNCTION_UDP_WRITE, |
||
435 | EFI_PXE_BASE_CODE_FUNCTION_UDP_READ, |
||
436 | EFI_PXE_BASE_CODE_FUNCTION_ARP, |
||
437 | EFI_PXE_BASE_CODE_FUNCTION_IGMP, |
||
438 | EFI_PXE_BASE_CODE_PXE_FUNCTION_LAST |
||
439 | } EFI_PXE_BASE_CODE_FUNCTION; |
||
440 | |||
441 | typedef enum { |
||
442 | EFI_PXE_BASE_CODE_CALLBACK_STATUS_FIRST, |
||
443 | EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE, |
||
444 | EFI_PXE_BASE_CODE_CALLBACK_STATUS_ABORT, |
||
445 | EFI_PXE_BASE_CODE_CALLBACK_STATUS_LAST |
||
446 | } EFI_PXE_BASE_CODE_CALLBACK_STATUS; |
||
447 | |||
448 | typedef |
||
449 | EFI_PXE_BASE_CODE_CALLBACK_STATUS |
||
450 | (EFIAPI *EFI_PXE_CALLBACK) ( |
||
451 | IN struct _EFI_PXE_BASE_CODE_CALLBACK *This, |
||
452 | IN EFI_PXE_BASE_CODE_FUNCTION Function, |
||
453 | IN BOOLEAN Received, |
||
454 | IN UINT32 PacketLen, |
||
455 | IN EFI_PXE_BASE_CODE_PACKET *Packet OPTIONAL |
||
456 | ); |
||
457 | |||
458 | typedef struct _EFI_PXE_BASE_CODE_CALLBACK { |
||
459 | UINT64 Revision; |
||
460 | EFI_PXE_CALLBACK Callback; |
||
461 | } EFI_PXE_BASE_CODE_CALLBACK; |
||
462 | |||
463 | #endif /* _EFIPXEBC_H */ |