42#define EFI_DP_TYPE_MASK 0x7F
43#define EFI_DP_TYPE_UNPACKED 0x80
45#define END_DEVICE_PATH_TYPE 0x7f
47#define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xff
48#define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01
49#define END_DEVICE_PATH_LENGTH (sizeof(EFI_DEVICE_PATH))
52#define DP_IS_END_TYPE(a)
53#define DP_IS_END_SUBTYPE(a) ( ((a)->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE )
55#define DevicePathType(a) ( ((a)->Type) & EFI_DP_TYPE_MASK )
56#define DevicePathSubType(a) ( (a)->SubType )
57#define DevicePathNodeLength(a) ((size_t)(((a)->Length[0]) | ((a)->Length[1] << 8)))
58#define NextDevicePathNode(a) ( (EFI_DEVICE_PATH *) ( ((UINT8 *) (a)) + DevicePathNodeLength(a)))
59#define IsDevicePathType(a, t) ( DevicePathType(a) == t )
60#define IsDevicePathEndType(a) IsDevicePathType(a, END_DEVICE_PATH_TYPE)
61#define IsDevicePathEndSubType(a) ( (a)->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE )
62#define IsDevicePathEnd(a) ( IsDevicePathEndType(a) && IsDevicePathEndSubType(a) )
63#define IsDevicePathUnpacked(a) ( (a)->Type & EFI_DP_TYPE_UNPACKED )
66#define SetDevicePathNodeLength(a,l) { \
67 (a)->Length[0] = (UINT8) (l); \
68 (a)->Length[1] = (UINT8) ((l) >> 8); \
71#define SetDevicePathEndNode(a) { \
72 (a)->Type = END_DEVICE_PATH_TYPE; \
73 (a)->SubType = END_ENTIRE_DEVICE_PATH_SUBTYPE; \
74 (a)->Length[0] = sizeof(EFI_DEVICE_PATH); \
81#define HARDWARE_DEVICE_PATH 0x01
90#define HW_PCCARD_DP 0x02
96#define HW_MEMMAP_DP 0x03
100 EFI_PHYSICAL_ADDRESS StartingAddress;
101 EFI_PHYSICAL_ADDRESS EndingAddress;
104#define HW_VENDOR_DP 0x04
110#define UNKNOWN_DEVICE_GUID \
111 { 0xcf31fac5, 0xc24e, 0x11d2, {0x85, 0xf3, 0x0, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b} }
115 UINT8 LegacyDriveLetter;
118#define HW_CONTROLLER_DP 0x05
127#define ACPI_DEVICE_PATH 0x02
136#define ACPI_EXTENDED_DP 0x02
144#define ACPI_ADR_DP 0x03
154#define PNP_EISA_ID_CONST 0x41d0
155#define EISA_ID(_Name, _Num) ((UINT32) ((_Name) | (_Num) << 16))
156#define EISA_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
157#define EFI_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
159#define PNP_EISA_ID_MASK 0xffff
160#define EISA_ID_TO_NUM(_Id) ((_Id) >> 16)
164#define MESSAGING_DEVICE_PATH 0x03
166#define MSG_ATAPI_DP 0x01
169 UINT8 PrimarySecondary;
174#define MSG_SCSI_DP 0x02
181#define MSG_FIBRECHANNEL_DP 0x03
189#define MSG_1394_DP 0x04
196#define MSG_USB_DP 0x05
199 UINT8 ParentPortNumber;
200 UINT8 InterfaceNumber;
203#define MSG_USB_CLASS_DP 0x0F
209 UINT8 DeviceSubClass;
210 UINT8 DeviceProtocol;
213#define MSG_I2O_DP 0x06
219#define MSG_MAC_ADDR_DP 0x0b
226#define MSG_IPv4_DP 0x0c
234 BOOLEAN StaticIpAddress;
239#define MSG_IPv6_DP 0x0d
247 BOOLEAN StaticIpAddress;
250#define MSG_INFINIBAND_DP 0x09
253 UINT32 ResourceFlags;
260#define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE 0x01
261#define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT 0x02
262#define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL 0x04
263#define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL 0x08
264#define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL 0x10
266#define MSG_UART_DP 0x0e
276#define MSG_VENDOR_DP 0x0A
279#define DEVICE_PATH_MESSAGING_PC_ANSI \
280 { 0xe0c14753, 0xf9be, 0x11d2, {0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
282#define DEVICE_PATH_MESSAGING_VT_100 \
283 { 0xdfa66065, 0xb419, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
285#define DEVICE_PATH_MESSAGING_VT_100_PLUS \
286 { 0x7baec70b, 0x57e0, 0x4c76, {0x8e, 0x87, 0x2f, 0x9e, 0x28, 0x08, 0x83, 0x43} }
288#define DEVICE_PATH_MESSAGING_VT_UTF8 \
289 { 0xad15a0d6, 0x8bec, 0x4acf, {0xa0, 0x73, 0xd0, 0x1d, 0xe7, 0x7e, 0x2d, 0x88} }
292#define MSG_DEVICE_LOGICAL_UNIT_DP 0x11
299#define MSG_SATA_DP 0x12
302 UINT16 HBAPortNumber;
303 UINT16 PortMultiplierPortNumber;
309#define MSG_DNS_DP 0x1F
320#define MSG_URI_DP 0x18
327#define MEDIA_DEVICE_PATH 0x04
329#define MEDIA_HARDDRIVE_DP 0x01
332 UINT32 PartitionNumber;
333 UINT64 PartitionStart;
334 UINT64 PartitionSize;
340#define MBR_TYPE_PCAT 0x01
341#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02
343#define SIGNATURE_TYPE_MBR 0x01
344#define SIGNATURE_TYPE_GUID 0x02
346#define MEDIA_CDROM_DP 0x02
350 UINT64 PartitionStart;
351 UINT64 PartitionSize;
354#define MEDIA_VENDOR_DP 0x03
357#define MEDIA_FILEPATH_DP 0x04
363#define SIZE_OF_FILEPATH_DEVICE_PATH EFI_FIELD_OFFSET(FILEPATH_DEVICE_PATH,PathName)
365#define MEDIA_PROTOCOL_DP 0x05
372#define BBS_DEVICE_PATH 0x05
373#define BBS_BBS_DP 0x01
382#define BBS_TYPE_FLOPPY 0x01
383#define BBS_TYPE_HARDDRIVE 0x02
384#define BBS_TYPE_CDROM 0x03
385#define BBS_TYPE_PCMCIA 0x04
386#define BBS_TYPE_USB 0x05
387#define BBS_TYPE_EMBEDDED_NETWORK 0x06
388#define BBS_TYPE_DEV 0x80
389#define BBS_TYPE_UNKNOWN 0xFF
460#define EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID \
461 { 0xbc62157e, 0x3e33, 0x4fec, { 0x99, 0x20, 0x2d, 0x3b, 0x36, 0xd7, 0x50, 0xdf } }
463#define EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID \
464 { 0x8b843e20, 0x8132, 0x4852, { 0x90, 0xcc, 0x55, 0x1a, 0x4e, 0x4a, 0x7f, 0x1c } }
466#define EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL_GUID \
467 { 0x05c99a21, 0xc70f, 0x4ad2, { 0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } }
469INTERFACE_DECL(_EFI_DEVICE_PATH_PROTOCOL);
473(EFIAPI *EFI_DEVICE_PATH_TO_TEXT_NODE) (
475 IN BOOLEAN DisplayOnly,
476 IN BOOLEAN AllowShortCuts
481(EFIAPI *EFI_DEVICE_PATH_TO_TEXT_PATH) (
483 IN BOOLEAN DisplayOnly,
484 IN BOOLEAN AllowShortCuts
488 EFI_DEVICE_PATH_TO_TEXT_NODE ConvertDeviceNodeToText;
489 EFI_DEVICE_PATH_TO_TEXT_PATH ConvertDevicePathToText;
494(EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_NODE) (
495 IN CONST CHAR16* TextDeviceNode
499(EFIAPI *EFI_DEVICE_PATH_FROM_TEXT_PATH) (
500 IN CONST CHAR16* TextDevicePath
505 EFI_DEVICE_PATH_FROM_TEXT_NODE ConvertTextToDeviceNode;
506 EFI_DEVICE_PATH_FROM_TEXT_PATH ConvertTextToDevicePath;
Definition: efidevp.h:293
Definition: efidevp.h:310
Definition: efidevp.h:321
Uart hardware registers.
Definition: component_uart.h:41
Definition: efidevp.h:137
Definition: efidevp.h:130
Definition: efidevp.h:167
Definition: efidevp.h:374
Definition: efidevp.h:347
Definition: efidevp.h:119
Definition: efidevp.h:504
Definition: efidevp.h:487
Definition: efidevp.h:190
Definition: efidevp.h:182
Definition: efidevp.h:358
Definition: efidevp.h:330
Definition: efidevp.h:214
Definition: efidevp.h:251
Definition: efidevp.h:227
Definition: efidevp.h:240
Definition: efidevp.h:220
Definition: efidevp.h:300
Definition: efidevp.h:175
Definition: efidevp.h:267
Definition: efidevp.h:113
Definition: efidevp.h:204
Definition: efidevp.h:197
Definition: efidevp.h:105
Definition: efidevp.h:425
Definition: efidevp.h:391