Deleted Added
full compact
efipxebc.h (77943) efipxebc.h (96893)
1/* $FreeBSD: head/sys/boot/efi/include/efipxebc.h 77943 2001-06-09 16:49:51Z dfr $ */
1/* $FreeBSD: head/sys/boot/efi/include/efipxebc.h 96893 2002-05-19 03:17:22Z marcel $ */
2#ifndef _EFIPXEBC_H
3#define _EFIPXEBC_H
4
5/*++
6
7Copyright (c) 1998 Intel Corporation
8
9Module Name:

--- 5 unchanged lines hidden (view full) ---

15 EFI PXE Base Code Protocol
16
17
18
19Revision History
20
21--*/
22
2#ifndef _EFIPXEBC_H
3#define _EFIPXEBC_H
4
5/*++
6
7Copyright (c) 1998 Intel Corporation
8
9Module Name:

--- 5 unchanged lines hidden (view full) ---

15 EFI PXE Base Code Protocol
16
17
18
19Revision History
20
21--*/
22
23//
24// PXE Base Code protocol
25//
23/*
24 * PXE Base Code protocol
25 */
26
27#define EFI_PXE_BASE_CODE_PROTOCOL \
28 { 0x03c4e603, 0xac28, 0x11d3, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }
29
30INTERFACE_DECL(_EFI_PXE_BASE_CODE);
31
32#define DEFAULT_TTL 4
33#define DEFAULT_ToS 0
26
27#define EFI_PXE_BASE_CODE_PROTOCOL \
28 { 0x03c4e603, 0xac28, 0x11d3, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }
29
30INTERFACE_DECL(_EFI_PXE_BASE_CODE);
31
32#define DEFAULT_TTL 4
33#define DEFAULT_ToS 0
34//
35// Address definitions
36//
37
34
35/*
36 * Address definitions
37 */
38
38typedef union {
39 UINT32 Addr[4];
40 EFI_IPv4_ADDRESS v4;
41 EFI_IPv6_ADDRESS v6;
42} EFI_IP_ADDRESS;
43
44typedef UINT16 EFI_PXE_BASE_CODE_UDP_PORT;
45
39typedef union {
40 UINT32 Addr[4];
41 EFI_IPv4_ADDRESS v4;
42 EFI_IPv6_ADDRESS v6;
43} EFI_IP_ADDRESS;
44
45typedef UINT16 EFI_PXE_BASE_CODE_UDP_PORT;
46
46//
47// Packet definitions
48//
47/*
48 * Packet definitions
49 */
49
50typedef struct {
51 UINT8 BootpOpcode;
52 UINT8 BootpHwType;
53 UINT8 BootpHwAddrLen;
54 UINT8 BootpGateHops;
55 UINT32 BootpIdent;
56 UINT16 BootpSeconds;

--- 4 unchanged lines hidden (view full) ---

61 UINT8 BootpGiAddr[4];
62 UINT8 BootpHwAddr[16];
63 UINT8 BootpSrvName[64];
64 UINT8 BootpBootFile[128];
65 UINT32 DhcpMagik;
66 UINT8 DhcpOptions[56];
67} EFI_PXE_BASE_CODE_DHCPV4_PACKET;
68
50
51typedef struct {
52 UINT8 BootpOpcode;
53 UINT8 BootpHwType;
54 UINT8 BootpHwAddrLen;
55 UINT8 BootpGateHops;
56 UINT32 BootpIdent;
57 UINT16 BootpSeconds;

--- 4 unchanged lines hidden (view full) ---

62 UINT8 BootpGiAddr[4];
63 UINT8 BootpHwAddr[16];
64 UINT8 BootpSrvName[64];
65 UINT8 BootpBootFile[128];
66 UINT32 DhcpMagik;
67 UINT8 DhcpOptions[56];
68} EFI_PXE_BASE_CODE_DHCPV4_PACKET;
69
69// TBD in EFI v1.1
70//typedef struct {
71// UINT8 reserved;
72//} EFI_PXE_BASE_CODE_DHCPV6_PACKET;
73
74typedef union {
75 UINT8 Raw[1472];
76 EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4;
70typedef union {
71 UINT8 Raw[1472];
72 EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4;
77// EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6;
78} EFI_PXE_BASE_CODE_PACKET;
79
80typedef struct {
81 UINT8 Type;
82 UINT8 Code;
83 UINT16 Checksum;
84 union {
85 UINT32 reserved;

--- 7 unchanged lines hidden (view full) ---

93 UINT8 Data[494];
94} EFI_PXE_BASE_CODE_ICMP_ERROR;
95
96typedef struct {
97 UINT8 ErrorCode;
98 CHAR8 ErrorString[127];
99} EFI_PXE_BASE_CODE_TFTP_ERROR;
100
73} EFI_PXE_BASE_CODE_PACKET;
74
75typedef struct {
76 UINT8 Type;
77 UINT8 Code;
78 UINT16 Checksum;
79 union {
80 UINT32 reserved;

--- 7 unchanged lines hidden (view full) ---

88 UINT8 Data[494];
89} EFI_PXE_BASE_CODE_ICMP_ERROR;
90
91typedef struct {
92 UINT8 ErrorCode;
93 CHAR8 ErrorString[127];
94} EFI_PXE_BASE_CODE_TFTP_ERROR;
95
101//
102// IP Receive Filter definitions
103//
96/*
97 * IP Receive Filter definitions
98 */
104#define EFI_PXE_BASE_CODE_MAX_IPCNT 8
105typedef struct {
106 UINT8 Filters;
107 UINT8 IpCnt;
108 UINT16 reserved;
109 EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT];
110} EFI_PXE_BASE_CODE_IP_FILTER;
111
112#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001
113#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002
114#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004
115#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008
116
99#define EFI_PXE_BASE_CODE_MAX_IPCNT 8
100typedef struct {
101 UINT8 Filters;
102 UINT8 IpCnt;
103 UINT16 reserved;
104 EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT];
105} EFI_PXE_BASE_CODE_IP_FILTER;
106
107#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001
108#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002
109#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004
110#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008
111
117//
118// ARP Cache definitions
119//
112/*
113 * ARP Cache definitions
114 */
120
121typedef struct {
122 EFI_IP_ADDRESS IpAddr;
123 EFI_MAC_ADDRESS MacAddr;
124} EFI_PXE_BASE_CODE_ARP_ENTRY;
125
126typedef struct {
127 EFI_IP_ADDRESS IpAddr;
128 EFI_IP_ADDRESS SubnetMask;
129 EFI_IP_ADDRESS GwAddr;
130} EFI_PXE_BASE_CODE_ROUTE_ENTRY;
131
115
116typedef struct {
117 EFI_IP_ADDRESS IpAddr;
118 EFI_MAC_ADDRESS MacAddr;
119} EFI_PXE_BASE_CODE_ARP_ENTRY;
120
121typedef struct {
122 EFI_IP_ADDRESS IpAddr;
123 EFI_IP_ADDRESS SubnetMask;
124 EFI_IP_ADDRESS GwAddr;
125} EFI_PXE_BASE_CODE_ROUTE_ENTRY;
126
132//
133// UDP definitions
134//
127/*
128 * UDP definitions
129 */
135
136#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP 0x0001
137#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT 0x0002
138#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP 0x0004
139#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT 0x0008
140#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER 0x0010
141#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_MAY_FRAGMENT 0x0020
142
130
131#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP 0x0001
132#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT 0x0002
133#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP 0x0004
134#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT 0x0008
135#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER 0x0010
136#define EFI_PXE_BASE_CODE_UDP_OPFLAGS_MAY_FRAGMENT 0x0020
137
143//
144// Discover() definitions
145//
138/*
139 * Discover() definitions
140 */
146
147#define EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP 0
148#define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1
149#define EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM 2
150#define EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI 3
151#define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4
152#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSoD 5
153#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM 6
154#define EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG 7
155#define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8
156#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 9
157#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 10
158#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 11
159#define EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 12
160#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL 13
161#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT 14
162#define EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO 15
163#define EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT 16
141
142#define EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP 0
143#define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1
144#define EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM 2
145#define EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI 3
146#define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4
147#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSoD 5
148#define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM 6
149#define EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG 7
150#define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8
151#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 9
152#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 10
153#define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 11
154#define EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 12
155#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL 13
156#define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT 14
157#define EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO 15
158#define EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT 16
164//
165// 17 through 32767 are reserved
166// 32768 through 65279 are for vendor use
167// 65280 through 65534 are reserved
168//
159/*
160 * 17 through 32767 are reserved
161 * 32768 through 65279 are for vendor use
162 * 65280 through 65534 are reserved
163 */
169#define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535
170
171#define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK 0x7FFF
172#define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL 0x0000
173
174
175typedef struct {
176 UINT16 Type;

--- 7 unchanged lines hidden (view full) ---

184 BOOLEAN UseBCast;
185 BOOLEAN UseUCast;
186 BOOLEAN MustUseList;
187 EFI_IP_ADDRESS ServerMCastIp;
188 UINT16 IpCnt;
189 EFI_PXE_BASE_CODE_SRVLIST SrvList[1];
190} EFI_PXE_BASE_CODE_DISCOVER_INFO;
191
164#define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535
165
166#define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK 0x7FFF
167#define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL 0x0000
168
169
170typedef struct {
171 UINT16 Type;

--- 7 unchanged lines hidden (view full) ---

179 BOOLEAN UseBCast;
180 BOOLEAN UseUCast;
181 BOOLEAN MustUseList;
182 EFI_IP_ADDRESS ServerMCastIp;
183 UINT16 IpCnt;
184 EFI_PXE_BASE_CODE_SRVLIST SrvList[1];
185} EFI_PXE_BASE_CODE_DISCOVER_INFO;
186
192//
193// Mtftp() definitions
194//
187/*
188 * Mtftp() definitions
189 */
195
196typedef enum {
197 EFI_PXE_BASE_CODE_TFTP_FIRST,
198 EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE,
199 EFI_PXE_BASE_CODE_TFTP_READ_FILE,
200 EFI_PXE_BASE_CODE_TFTP_WRITE_FILE,
201 EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY,
202 EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE,

--- 5 unchanged lines hidden (view full) ---

208typedef struct {
209 EFI_IP_ADDRESS MCastIp;
210 EFI_PXE_BASE_CODE_UDP_PORT CPort;
211 EFI_PXE_BASE_CODE_UDP_PORT SPort;
212 UINT16 ListenTimeout;
213 UINT16 TransmitTimeout;
214} EFI_PXE_BASE_CODE_MTFTP_INFO;
215
190
191typedef enum {
192 EFI_PXE_BASE_CODE_TFTP_FIRST,
193 EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE,
194 EFI_PXE_BASE_CODE_TFTP_READ_FILE,
195 EFI_PXE_BASE_CODE_TFTP_WRITE_FILE,
196 EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY,
197 EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE,

--- 5 unchanged lines hidden (view full) ---

203typedef struct {
204 EFI_IP_ADDRESS MCastIp;
205 EFI_PXE_BASE_CODE_UDP_PORT CPort;
206 EFI_PXE_BASE_CODE_UDP_PORT SPort;
207 UINT16 ListenTimeout;
208 UINT16 TransmitTimeout;
209} EFI_PXE_BASE_CODE_MTFTP_INFO;
210
216//
217// PXE Base Code Mode structure
218//
211/*
212 * PXE Base Code Mode structure
213 */
219
220#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8
221#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8
222
223typedef struct {
224 BOOLEAN Started;
225 BOOLEAN Ipv6Available;
226 BOOLEAN Ipv6Supported;

--- 25 unchanged lines hidden (view full) ---

252 UINT32 ArpCacheEntries;
253 EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES];
254 UINT32 RouteTableEntries;
255 EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES];
256 EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError;
257 EFI_PXE_BASE_CODE_TFTP_ERROR TftpError;
258} EFI_PXE_BASE_CODE_MODE;
259
214
215#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8
216#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8
217
218typedef struct {
219 BOOLEAN Started;
220 BOOLEAN Ipv6Available;
221 BOOLEAN Ipv6Supported;

--- 25 unchanged lines hidden (view full) ---

247 UINT32 ArpCacheEntries;
248 EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES];
249 UINT32 RouteTableEntries;
250 EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES];
251 EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError;
252 EFI_PXE_BASE_CODE_TFTP_ERROR TftpError;
253} EFI_PXE_BASE_CODE_MODE;
254
260//
261// PXE Base Code Interface Function definitions
262//
255/*
256 * PXE Base Code Interface Function definitions
257 */
263
264typedef
265EFI_STATUS
266(EFIAPI *EFI_PXE_BASE_CODE_START) (
267 IN struct _EFI_PXE_BASE_CODE *This,
268 IN BOOLEAN UseIpv6
269 );
270

--- 113 unchanged lines hidden (view full) ---

384 IN EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover, OPTIONAL
385 IN EFI_PXE_BASE_CODE_PACKET *NewDhcpAck, OPTIONAL
386 IN EFI_PXE_BASE_CODE_PACKET *NewProxyOffer, OPTIONAL
387 IN EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover, OPTIONAL
388 IN EFI_PXE_BASE_CODE_PACKET *NewPxeReply, OPTIONAL
389 IN EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply OPTIONAL
390 );
391
258
259typedef
260EFI_STATUS
261(EFIAPI *EFI_PXE_BASE_CODE_START) (
262 IN struct _EFI_PXE_BASE_CODE *This,
263 IN BOOLEAN UseIpv6
264 );
265

--- 113 unchanged lines hidden (view full) ---

379 IN EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover, OPTIONAL
380 IN EFI_PXE_BASE_CODE_PACKET *NewDhcpAck, OPTIONAL
381 IN EFI_PXE_BASE_CODE_PACKET *NewProxyOffer, OPTIONAL
382 IN EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover, OPTIONAL
383 IN EFI_PXE_BASE_CODE_PACKET *NewPxeReply, OPTIONAL
384 IN EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply OPTIONAL
385 );
386
392//
393// PXE Base Code Protocol structure
394//
387/*
388 * PXE Base Code Protocol structure
389 */
395
396#define EFI_PXE_BASE_CODE_INTERFACE_REVISION 0x00010000
397
398typedef struct _EFI_PXE_BASE_CODE {
399 UINT64 Revision;
400 EFI_PXE_BASE_CODE_START Start;
401 EFI_PXE_BASE_CODE_STOP Stop;
402 EFI_PXE_BASE_CODE_DHCP Dhcp;

--- 4 unchanged lines hidden (view full) ---

407 EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter;
408 EFI_PXE_BASE_CODE_ARP Arp;
409 EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters;
410 EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp;
411 EFI_PXE_BASE_CODE_SET_PACKETS SetPackets;
412 EFI_PXE_BASE_CODE_MODE *Mode;
413} EFI_PXE_BASE_CODE;
414
390
391#define EFI_PXE_BASE_CODE_INTERFACE_REVISION 0x00010000
392
393typedef struct _EFI_PXE_BASE_CODE {
394 UINT64 Revision;
395 EFI_PXE_BASE_CODE_START Start;
396 EFI_PXE_BASE_CODE_STOP Stop;
397 EFI_PXE_BASE_CODE_DHCP Dhcp;

--- 4 unchanged lines hidden (view full) ---

402 EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter;
403 EFI_PXE_BASE_CODE_ARP Arp;
404 EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters;
405 EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp;
406 EFI_PXE_BASE_CODE_SET_PACKETS SetPackets;
407 EFI_PXE_BASE_CODE_MODE *Mode;
408} EFI_PXE_BASE_CODE;
409
415//
416// Call Back Definitions
417//
410/*
411 * Call Back Definitions
412 */
418
419#define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL \
420 { 0x245dca21, 0xfb7b, 0x11d3, 0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b }
421
413
414#define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL \
415 { 0x245dca21, 0xfb7b, 0x11d3, 0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b }
416
422//
423// Revision Number
424//
417/*
418 * Revision Number
419 */
425
426#define EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION 0x00010000
427
428INTERFACE_DECL(_EFI_PXE_BASE_CODE_CALLBACK);
429
430typedef enum {
431 EFI_PXE_BASE_CODE_FUNCTION_FIRST,
432 EFI_PXE_BASE_CODE_FUNCTION_DHCP,

--- 32 unchanged lines hidden ---
420
421#define EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION 0x00010000
422
423INTERFACE_DECL(_EFI_PXE_BASE_CODE_CALLBACK);
424
425typedef enum {
426 EFI_PXE_BASE_CODE_FUNCTION_FIRST,
427 EFI_PXE_BASE_CODE_FUNCTION_DHCP,

--- 32 unchanged lines hidden ---