efidevp.h revision 1.1 1 1.1 jakllsch /* $NetBSD: efidevp.h,v 1.1 2014/04/01 16:16:07 jakllsch Exp $ */
2 1.1 jakllsch
3 1.1 jakllsch #ifndef _DEVPATH_H
4 1.1 jakllsch #define _DEVPATH_H
5 1.1 jakllsch
6 1.1 jakllsch /*++
7 1.1 jakllsch
8 1.1 jakllsch Copyright (c) 1998 Intel Corporation
9 1.1 jakllsch
10 1.1 jakllsch Module Name:
11 1.1 jakllsch
12 1.1 jakllsch devpath.h
13 1.1 jakllsch
14 1.1 jakllsch Abstract:
15 1.1 jakllsch
16 1.1 jakllsch Defines for parsing the EFI Device Path structures
17 1.1 jakllsch
18 1.1 jakllsch
19 1.1 jakllsch
20 1.1 jakllsch Revision History
21 1.1 jakllsch
22 1.1 jakllsch --*/
23 1.1 jakllsch
24 1.1 jakllsch //
25 1.1 jakllsch // Device Path structures - Section C
26 1.1 jakllsch //
27 1.1 jakllsch
28 1.1 jakllsch typedef struct _EFI_DEVICE_PATH {
29 1.1 jakllsch UINT8 Type;
30 1.1 jakllsch UINT8 SubType;
31 1.1 jakllsch UINT8 Length[2];
32 1.1 jakllsch } EFI_DEVICE_PATH;
33 1.1 jakllsch
34 1.1 jakllsch #define EFI_DP_TYPE_MASK 0x7F
35 1.1 jakllsch #define EFI_DP_TYPE_UNPACKED 0x80
36 1.1 jakllsch
37 1.1 jakllsch //#define END_DEVICE_PATH_TYPE 0xff
38 1.1 jakllsch #define END_DEVICE_PATH_TYPE 0x7f
39 1.1 jakllsch //#define END_DEVICE_PATH_TYPE_UNPACKED 0x7f
40 1.1 jakllsch
41 1.1 jakllsch #define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xff
42 1.1 jakllsch #define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01
43 1.1 jakllsch #define END_DEVICE_PATH_LENGTH (sizeof(EFI_DEVICE_PATH))
44 1.1 jakllsch
45 1.1 jakllsch
46 1.1 jakllsch #define DP_IS_END_TYPE(a)
47 1.1 jakllsch #define DP_IS_END_SUBTYPE(a) ( ((a)->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE )
48 1.1 jakllsch
49 1.1 jakllsch #define DevicePathType(a) ( ((a)->Type) & EFI_DP_TYPE_MASK )
50 1.1 jakllsch #define DevicePathSubType(a) ( (a)->SubType )
51 1.1 jakllsch #define DevicePathNodeLength(a) ( ((a)->Length[0]) | ((a)->Length[1] << 8) )
52 1.1 jakllsch #define NextDevicePathNode(a) ( (EFI_DEVICE_PATH *) ( ((UINT8 *) (a)) + DevicePathNodeLength(a)))
53 1.1 jakllsch //#define IsDevicePathEndType(a) ( DevicePathType(a) == END_DEVICE_PATH_TYPE_UNPACKED )
54 1.1 jakllsch #define IsDevicePathEndType(a) ( DevicePathType(a) == END_DEVICE_PATH_TYPE )
55 1.1 jakllsch #define IsDevicePathEndSubType(a) ( (a)->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE )
56 1.1 jakllsch #define IsDevicePathEnd(a) ( IsDevicePathEndType(a) && IsDevicePathEndSubType(a) )
57 1.1 jakllsch #define IsDevicePathUnpacked(a) ( (a)->Type & EFI_DP_TYPE_UNPACKED )
58 1.1 jakllsch
59 1.1 jakllsch
60 1.1 jakllsch #define SetDevicePathNodeLength(a,l) { \
61 1.1 jakllsch (a)->Length[0] = (UINT8) (l); \
62 1.1 jakllsch (a)->Length[1] = (UINT8) ((l) >> 8); \
63 1.1 jakllsch }
64 1.1 jakllsch
65 1.1 jakllsch #define SetDevicePathEndNode(a) { \
66 1.1 jakllsch (a)->Type = END_DEVICE_PATH_TYPE; \
67 1.1 jakllsch (a)->SubType = END_ENTIRE_DEVICE_PATH_SUBTYPE; \
68 1.1 jakllsch (a)->Length[0] = sizeof(EFI_DEVICE_PATH); \
69 1.1 jakllsch (a)->Length[1] = 0; \
70 1.1 jakllsch }
71 1.1 jakllsch
72 1.1 jakllsch
73 1.1 jakllsch
74 1.1 jakllsch /*
75 1.1 jakllsch *
76 1.1 jakllsch */
77 1.1 jakllsch #define HARDWARE_DEVICE_PATH 0x01
78 1.1 jakllsch
79 1.1 jakllsch #define HW_PCI_DP 0x01
80 1.1 jakllsch typedef struct _PCI_DEVICE_PATH {
81 1.1 jakllsch EFI_DEVICE_PATH Header;
82 1.1 jakllsch UINT8 Function;
83 1.1 jakllsch UINT8 Device;
84 1.1 jakllsch } PCI_DEVICE_PATH;
85 1.1 jakllsch
86 1.1 jakllsch #define HW_PCCARD_DP 0x02
87 1.1 jakllsch typedef struct _PCCARD_DEVICE_PATH {
88 1.1 jakllsch EFI_DEVICE_PATH Header;
89 1.1 jakllsch UINT8 SocketNumber;
90 1.1 jakllsch } PCCARD_DEVICE_PATH;
91 1.1 jakllsch
92 1.1 jakllsch #define HW_MEMMAP_DP 0x03
93 1.1 jakllsch typedef struct _MEMMAP_DEVICE_PATH {
94 1.1 jakllsch EFI_DEVICE_PATH Header;
95 1.1 jakllsch UINT32 MemoryType;
96 1.1 jakllsch EFI_PHYSICAL_ADDRESS StartingAddress;
97 1.1 jakllsch EFI_PHYSICAL_ADDRESS EndingAddress;
98 1.1 jakllsch } MEMMAP_DEVICE_PATH;
99 1.1 jakllsch
100 1.1 jakllsch #define HW_VENDOR_DP 0x04
101 1.1 jakllsch typedef struct _VENDOR_DEVICE_PATH {
102 1.1 jakllsch EFI_DEVICE_PATH Header;
103 1.1 jakllsch EFI_GUID Guid;
104 1.1 jakllsch } VENDOR_DEVICE_PATH;
105 1.1 jakllsch
106 1.1 jakllsch #define UNKNOWN_DEVICE_GUID \
107 1.1 jakllsch { 0xcf31fac5, 0xc24e, 0x11d2, {0x85, 0xf3, 0x0, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b} }
108 1.1 jakllsch
109 1.1 jakllsch typedef struct _UKNOWN_DEVICE_VENDOR_DP {
110 1.1 jakllsch VENDOR_DEVICE_PATH DevicePath;
111 1.1 jakllsch UINT8 LegacyDriveLetter;
112 1.1 jakllsch } UNKNOWN_DEVICE_VENDOR_DEVICE_PATH;
113 1.1 jakllsch
114 1.1 jakllsch #define HW_CONTROLLER_DP 0x05
115 1.1 jakllsch typedef struct _CONTROLLER_DEVICE_PATH {
116 1.1 jakllsch EFI_DEVICE_PATH Header;
117 1.1 jakllsch UINT32 Controller;
118 1.1 jakllsch } CONTROLLER_DEVICE_PATH;
119 1.1 jakllsch
120 1.1 jakllsch /*
121 1.1 jakllsch *
122 1.1 jakllsch */
123 1.1 jakllsch #define ACPI_DEVICE_PATH 0x02
124 1.1 jakllsch
125 1.1 jakllsch #define ACPI_DP 0x01
126 1.1 jakllsch typedef struct _ACPI_HID_DEVICE_PATH {
127 1.1 jakllsch EFI_DEVICE_PATH Header;
128 1.1 jakllsch UINT32 HID;
129 1.1 jakllsch UINT32 UID;
130 1.1 jakllsch } ACPI_HID_DEVICE_PATH;
131 1.1 jakllsch
132 1.1 jakllsch #define EXPANDED_ACPI_DP 0x02
133 1.1 jakllsch typedef struct _EXPANDED_ACPI_HID_DEVICE_PATH {
134 1.1 jakllsch EFI_DEVICE_PATH Header;
135 1.1 jakllsch UINT32 HID;
136 1.1 jakllsch UINT32 UID;
137 1.1 jakllsch UINT32 CID;
138 1.1 jakllsch UINT8 HidStr[1];
139 1.1 jakllsch } EXPANDED_ACPI_HID_DEVICE_PATH;
140 1.1 jakllsch
141 1.1 jakllsch //
142 1.1 jakllsch // EISA ID Macro
143 1.1 jakllsch // EISA ID Definition 32-bits
144 1.1 jakllsch // bits[15:0] - three character compressed ASCII EISA ID.
145 1.1 jakllsch // bits[31:16] - binary number
146 1.1 jakllsch // Compressed ASCII is 5 bits per character 0b00001 = 'A' 0b11010 = 'Z'
147 1.1 jakllsch //
148 1.1 jakllsch #define PNP_EISA_ID_CONST 0x41d0
149 1.1 jakllsch #define EISA_ID(_Name, _Num) ((UINT32) ((_Name) | (_Num) << 16))
150 1.1 jakllsch #define EISA_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
151 1.1 jakllsch
152 1.1 jakllsch #define PNP_EISA_ID_MASK 0xffff
153 1.1 jakllsch #define EISA_ID_TO_NUM(_Id) ((_Id) >> 16)
154 1.1 jakllsch /*
155 1.1 jakllsch *
156 1.1 jakllsch */
157 1.1 jakllsch #define MESSAGING_DEVICE_PATH 0x03
158 1.1 jakllsch
159 1.1 jakllsch #define MSG_ATAPI_DP 0x01
160 1.1 jakllsch typedef struct _ATAPI_DEVICE_PATH {
161 1.1 jakllsch EFI_DEVICE_PATH Header;
162 1.1 jakllsch UINT8 PrimarySecondary;
163 1.1 jakllsch UINT8 SlaveMaster;
164 1.1 jakllsch UINT16 Lun;
165 1.1 jakllsch } ATAPI_DEVICE_PATH;
166 1.1 jakllsch
167 1.1 jakllsch #define MSG_SCSI_DP 0x02
168 1.1 jakllsch typedef struct _SCSI_DEVICE_PATH {
169 1.1 jakllsch EFI_DEVICE_PATH Header;
170 1.1 jakllsch UINT16 Pun;
171 1.1 jakllsch UINT16 Lun;
172 1.1 jakllsch } SCSI_DEVICE_PATH;
173 1.1 jakllsch
174 1.1 jakllsch #define MSG_FIBRECHANNEL_DP 0x03
175 1.1 jakllsch typedef struct _FIBRECHANNEL_DEVICE_PATH {
176 1.1 jakllsch EFI_DEVICE_PATH Header;
177 1.1 jakllsch UINT32 Reserved;
178 1.1 jakllsch UINT64 WWN;
179 1.1 jakllsch UINT64 Lun;
180 1.1 jakllsch } FIBRECHANNEL_DEVICE_PATH;
181 1.1 jakllsch
182 1.1 jakllsch #define MSG_1394_DP 0x04
183 1.1 jakllsch typedef struct _F1394_DEVICE_PATH {
184 1.1 jakllsch EFI_DEVICE_PATH Header;
185 1.1 jakllsch UINT32 Reserved;
186 1.1 jakllsch UINT64 Guid;
187 1.1 jakllsch } F1394_DEVICE_PATH;
188 1.1 jakllsch
189 1.1 jakllsch #define MSG_USB_DP 0x05
190 1.1 jakllsch typedef struct _USB_DEVICE_PATH {
191 1.1 jakllsch EFI_DEVICE_PATH Header;
192 1.1 jakllsch UINT8 Port;
193 1.1 jakllsch UINT8 Endpoint;
194 1.1 jakllsch } USB_DEVICE_PATH;
195 1.1 jakllsch
196 1.1 jakllsch #define MSG_USB_CLASS_DP 0x0F
197 1.1 jakllsch typedef struct _USB_CLASS_DEVICE_PATH {
198 1.1 jakllsch EFI_DEVICE_PATH Header;
199 1.1 jakllsch UINT16 VendorId;
200 1.1 jakllsch UINT16 ProductId;
201 1.1 jakllsch UINT8 DeviceClass;
202 1.1 jakllsch UINT8 DeviceSubclass;
203 1.1 jakllsch UINT8 DeviceProtocol;
204 1.1 jakllsch } USB_CLASS_DEVICE_PATH;
205 1.1 jakllsch
206 1.1 jakllsch #define MSG_I2O_DP 0x06
207 1.1 jakllsch typedef struct _I2O_DEVICE_PATH {
208 1.1 jakllsch EFI_DEVICE_PATH Header;
209 1.1 jakllsch UINT32 Tid;
210 1.1 jakllsch } I2O_DEVICE_PATH;
211 1.1 jakllsch
212 1.1 jakllsch #define MSG_MAC_ADDR_DP 0x0b
213 1.1 jakllsch typedef struct _MAC_ADDR_DEVICE_PATH {
214 1.1 jakllsch EFI_DEVICE_PATH Header;
215 1.1 jakllsch EFI_MAC_ADDRESS MacAddress;
216 1.1 jakllsch UINT8 IfType;
217 1.1 jakllsch } MAC_ADDR_DEVICE_PATH;
218 1.1 jakllsch
219 1.1 jakllsch #define MSG_IPv4_DP 0x0c
220 1.1 jakllsch typedef struct _IPv4_DEVICE_PATH {
221 1.1 jakllsch EFI_DEVICE_PATH Header;
222 1.1 jakllsch EFI_IPv4_ADDRESS LocalIpAddress;
223 1.1 jakllsch EFI_IPv4_ADDRESS RemoteIpAddress;
224 1.1 jakllsch UINT16 LocalPort;
225 1.1 jakllsch UINT16 RemotePort;
226 1.1 jakllsch UINT16 Protocol;
227 1.1 jakllsch BOOLEAN StaticIpAddress;
228 1.1 jakllsch } IPv4_DEVICE_PATH;
229 1.1 jakllsch
230 1.1 jakllsch #define MSG_IPv6_DP 0x0d
231 1.1 jakllsch typedef struct _IPv6_DEVICE_PATH {
232 1.1 jakllsch EFI_DEVICE_PATH Header;
233 1.1 jakllsch EFI_IPv6_ADDRESS LocalIpAddress;
234 1.1 jakllsch EFI_IPv6_ADDRESS RemoteIpAddress;
235 1.1 jakllsch UINT16 LocalPort;
236 1.1 jakllsch UINT16 RemotePort;
237 1.1 jakllsch UINT16 Protocol;
238 1.1 jakllsch BOOLEAN StaticIpAddress;
239 1.1 jakllsch } IPv6_DEVICE_PATH;
240 1.1 jakllsch
241 1.1 jakllsch #define MSG_INFINIBAND_DP 0x09
242 1.1 jakllsch typedef struct _INFINIBAND_DEVICE_PATH {
243 1.1 jakllsch EFI_DEVICE_PATH Header;
244 1.1 jakllsch UINT32 Reserved;
245 1.1 jakllsch UINT64 NodeGuid;
246 1.1 jakllsch UINT64 IocGuid;
247 1.1 jakllsch UINT64 DeviceId;
248 1.1 jakllsch } INFINIBAND_DEVICE_PATH;
249 1.1 jakllsch
250 1.1 jakllsch #define MSG_UART_DP 0x0e
251 1.1 jakllsch typedef struct _UART_DEVICE_PATH {
252 1.1 jakllsch EFI_DEVICE_PATH Header;
253 1.1 jakllsch UINT32 Reserved;
254 1.1 jakllsch UINT64 BaudRate;
255 1.1 jakllsch UINT8 DataBits;
256 1.1 jakllsch UINT8 Parity;
257 1.1 jakllsch UINT8 StopBits;
258 1.1 jakllsch } UART_DEVICE_PATH;
259 1.1 jakllsch
260 1.1 jakllsch #define MSG_VENDOR_DP 0x0A
261 1.1 jakllsch /* Use VENDOR_DEVICE_PATH struct */
262 1.1 jakllsch
263 1.1 jakllsch #define DEVICE_PATH_MESSAGING_PC_ANSI \
264 1.1 jakllsch { 0xe0c14753, 0xf9be, 0x11d2, {0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
265 1.1 jakllsch
266 1.1 jakllsch #define DEVICE_PATH_MESSAGING_VT_100 \
267 1.1 jakllsch { 0xdfa66065, 0xb419, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
268 1.1 jakllsch
269 1.1 jakllsch
270 1.1 jakllsch
271 1.1 jakllsch #define MEDIA_DEVICE_PATH 0x04
272 1.1 jakllsch
273 1.1 jakllsch #define MEDIA_HARDDRIVE_DP 0x01
274 1.1 jakllsch typedef struct _HARDDRIVE_DEVICE_PATH {
275 1.1 jakllsch EFI_DEVICE_PATH Header;
276 1.1 jakllsch UINT32 PartitionNumber;
277 1.1 jakllsch UINT64 PartitionStart;
278 1.1 jakllsch UINT64 PartitionSize;
279 1.1 jakllsch UINT8 Signature[16];
280 1.1 jakllsch UINT8 MBRType;
281 1.1 jakllsch UINT8 SignatureType;
282 1.1 jakllsch } HARDDRIVE_DEVICE_PATH;
283 1.1 jakllsch
284 1.1 jakllsch #define MBR_TYPE_PCAT 0x01
285 1.1 jakllsch #define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02
286 1.1 jakllsch
287 1.1 jakllsch #define SIGNATURE_TYPE_MBR 0x01
288 1.1 jakllsch #define SIGNATURE_TYPE_GUID 0x02
289 1.1 jakllsch
290 1.1 jakllsch #define MEDIA_CDROM_DP 0x02
291 1.1 jakllsch typedef struct _CDROM_DEVICE_PATH {
292 1.1 jakllsch EFI_DEVICE_PATH Header;
293 1.1 jakllsch UINT32 BootEntry;
294 1.1 jakllsch UINT64 PartitionStart;
295 1.1 jakllsch UINT64 PartitionSize;
296 1.1 jakllsch } CDROM_DEVICE_PATH;
297 1.1 jakllsch
298 1.1 jakllsch #define MEDIA_VENDOR_DP 0x03
299 1.1 jakllsch /* Use VENDOR_DEVICE_PATH struct */
300 1.1 jakllsch
301 1.1 jakllsch #define MEDIA_FILEPATH_DP 0x04
302 1.1 jakllsch typedef struct _FILEPATH_DEVICE_PATH {
303 1.1 jakllsch EFI_DEVICE_PATH Header;
304 1.1 jakllsch CHAR16 PathName[1];
305 1.1 jakllsch } FILEPATH_DEVICE_PATH;
306 1.1 jakllsch
307 1.1 jakllsch #define SIZE_OF_FILEPATH_DEVICE_PATH EFI_FIELD_OFFSET(FILEPATH_DEVICE_PATH,PathName)
308 1.1 jakllsch
309 1.1 jakllsch #define MEDIA_PROTOCOL_DP 0x05
310 1.1 jakllsch typedef struct _MEDIA_PROTOCOL_DEVICE_PATH {
311 1.1 jakllsch EFI_DEVICE_PATH Header;
312 1.1 jakllsch EFI_GUID Protocol;
313 1.1 jakllsch } MEDIA_PROTOCOL_DEVICE_PATH;
314 1.1 jakllsch
315 1.1 jakllsch
316 1.1 jakllsch #define BBS_DEVICE_PATH 0x05
317 1.1 jakllsch #define BBS_BBS_DP 0x01
318 1.1 jakllsch typedef struct _BBS_BBS_DEVICE_PATH {
319 1.1 jakllsch EFI_DEVICE_PATH Header;
320 1.1 jakllsch UINT16 DeviceType;
321 1.1 jakllsch UINT16 StatusFlag;
322 1.1 jakllsch CHAR8 String[1];
323 1.1 jakllsch } BBS_BBS_DEVICE_PATH;
324 1.1 jakllsch
325 1.1 jakllsch /* DeviceType definitions - from BBS specification */
326 1.1 jakllsch #define BBS_TYPE_FLOPPY 0x01
327 1.1 jakllsch #define BBS_TYPE_HARDDRIVE 0x02
328 1.1 jakllsch #define BBS_TYPE_CDROM 0x03
329 1.1 jakllsch #define BBS_TYPE_PCMCIA 0x04
330 1.1 jakllsch #define BBS_TYPE_USB 0x05
331 1.1 jakllsch #define BBS_TYPE_EMBEDDED_NETWORK 0x06
332 1.1 jakllsch #define BBS_TYPE_DEV 0x80
333 1.1 jakllsch #define BBS_TYPE_UNKNOWN 0xFF
334 1.1 jakllsch
335 1.1 jakllsch typedef union {
336 1.1 jakllsch EFI_DEVICE_PATH DevPath;
337 1.1 jakllsch PCI_DEVICE_PATH Pci;
338 1.1 jakllsch PCCARD_DEVICE_PATH PcCard;
339 1.1 jakllsch MEMMAP_DEVICE_PATH MemMap;
340 1.1 jakllsch VENDOR_DEVICE_PATH Vendor;
341 1.1 jakllsch UNKNOWN_DEVICE_VENDOR_DEVICE_PATH UnknownVendor;
342 1.1 jakllsch CONTROLLER_DEVICE_PATH Controller;
343 1.1 jakllsch ACPI_HID_DEVICE_PATH Acpi;
344 1.1 jakllsch
345 1.1 jakllsch ATAPI_DEVICE_PATH Atapi;
346 1.1 jakllsch SCSI_DEVICE_PATH Scsi;
347 1.1 jakllsch FIBRECHANNEL_DEVICE_PATH FibreChannel;
348 1.1 jakllsch
349 1.1 jakllsch F1394_DEVICE_PATH F1394;
350 1.1 jakllsch USB_DEVICE_PATH Usb;
351 1.1 jakllsch USB_CLASS_DEVICE_PATH UsbClass;
352 1.1 jakllsch I2O_DEVICE_PATH I2O;
353 1.1 jakllsch MAC_ADDR_DEVICE_PATH MacAddr;
354 1.1 jakllsch IPv4_DEVICE_PATH Ipv4;
355 1.1 jakllsch IPv6_DEVICE_PATH Ipv6;
356 1.1 jakllsch INFINIBAND_DEVICE_PATH InfiniBand;
357 1.1 jakllsch UART_DEVICE_PATH Uart;
358 1.1 jakllsch
359 1.1 jakllsch HARDDRIVE_DEVICE_PATH HardDrive;
360 1.1 jakllsch CDROM_DEVICE_PATH CD;
361 1.1 jakllsch
362 1.1 jakllsch FILEPATH_DEVICE_PATH FilePath;
363 1.1 jakllsch MEDIA_PROTOCOL_DEVICE_PATH MediaProtocol;
364 1.1 jakllsch
365 1.1 jakllsch BBS_BBS_DEVICE_PATH Bbs;
366 1.1 jakllsch
367 1.1 jakllsch } EFI_DEV_PATH;
368 1.1 jakllsch
369 1.1 jakllsch typedef union {
370 1.1 jakllsch EFI_DEVICE_PATH *DevPath;
371 1.1 jakllsch PCI_DEVICE_PATH *Pci;
372 1.1 jakllsch PCCARD_DEVICE_PATH *PcCard;
373 1.1 jakllsch MEMMAP_DEVICE_PATH *MemMap;
374 1.1 jakllsch VENDOR_DEVICE_PATH *Vendor;
375 1.1 jakllsch UNKNOWN_DEVICE_VENDOR_DEVICE_PATH *UnknownVendor;
376 1.1 jakllsch CONTROLLER_DEVICE_PATH *Controller;
377 1.1 jakllsch ACPI_HID_DEVICE_PATH *Acpi;
378 1.1 jakllsch
379 1.1 jakllsch ATAPI_DEVICE_PATH *Atapi;
380 1.1 jakllsch SCSI_DEVICE_PATH *Scsi;
381 1.1 jakllsch FIBRECHANNEL_DEVICE_PATH *FibreChannel;
382 1.1 jakllsch
383 1.1 jakllsch F1394_DEVICE_PATH *F1394;
384 1.1 jakllsch USB_DEVICE_PATH *Usb;
385 1.1 jakllsch USB_CLASS_DEVICE_PATH *UsbClass;
386 1.1 jakllsch I2O_DEVICE_PATH *I2O;
387 1.1 jakllsch MAC_ADDR_DEVICE_PATH *MacAddr;
388 1.1 jakllsch IPv4_DEVICE_PATH *Ipv4;
389 1.1 jakllsch IPv6_DEVICE_PATH *Ipv6;
390 1.1 jakllsch INFINIBAND_DEVICE_PATH *InfiniBand;
391 1.1 jakllsch UART_DEVICE_PATH *Uart;
392 1.1 jakllsch
393 1.1 jakllsch HARDDRIVE_DEVICE_PATH *HardDrive;
394 1.1 jakllsch
395 1.1 jakllsch FILEPATH_DEVICE_PATH *FilePath;
396 1.1 jakllsch MEDIA_PROTOCOL_DEVICE_PATH *MediaProtocol;
397 1.1 jakllsch
398 1.1 jakllsch CDROM_DEVICE_PATH *CD;
399 1.1 jakllsch BBS_BBS_DEVICE_PATH *Bbs;
400 1.1 jakllsch
401 1.1 jakllsch } EFI_DEV_PATH_PTR;
402 1.1 jakllsch
403 1.1 jakllsch
404 1.1 jakllsch #endif
405