~vojtech-horky/helenos/numa

« back to all changes in this revision

Viewing changes to boot/arch/ia64/loader/gefi/inc/efipxebc.h

  • Committer: Martin Decky
  • Date: 2009-08-04 11:19:19 UTC
  • Revision ID: martin@uranus.dsrg.hide.ms.mff.cuni.cz-20090804111919-evyclddlr3v5lhmp
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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 */