13#ifndef __EFI_DEVICE_PATH_PROTOCOL_H__
14#define __EFI_DEVICE_PATH_PROTOCOL_H__
23#define EFI_DEVICE_PATH_PROTOCOL_GUID \
25 0x9576e91, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
31#define DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH_PROTOCOL_GUID
68#define HARDWARE_DEVICE_PATH 0x01
93#define HW_PCCARD_DP 0x02
109#define HW_MEMMAP_DP 0x03
133#define HW_VENDOR_DP 0x04
154#define HW_CONTROLLER_DP 0x05
170#define HW_BMC_DP 0x06
184 UINT8 BaseAddress[8];
190#define ACPI_DEVICE_PATH 0x02
217#define ACPI_EXTENDED_DP 0x02
253#define PNP_EISA_ID_CONST 0x41d0
254#define EISA_ID(_Name, _Num) ((UINT32)((_Name) | (_Num) << 16))
255#define EISA_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
256#define EFI_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId)))
258#define PNP_EISA_ID_MASK 0xffff
259#define EISA_ID_TO_NUM(_Id) ((_Id) >> 16)
264#define ACPI_ADR_DP 0x03
287#define ACPI_NVDIMM_DP 0x04
299#define ACPI_ADR_DISPLAY_TYPE_OTHER 0
300#define ACPI_ADR_DISPLAY_TYPE_VGA 1
301#define ACPI_ADR_DISPLAY_TYPE_TV 2
302#define ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL 3
303#define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL 4
305#define ACPI_DISPLAY_ADR(_DeviceIdScheme, _HeadId, _NonVgaOutput, _BiosCanDetect, _VendorInfo, _Type, _Port, _Index) \
306 ((UINT32)( ((UINT32)((_DeviceIdScheme) & 0x1) << 31) | \
307 (((_HeadId) & 0x7) << 18) | \
308 (((_NonVgaOutput) & 0x1) << 17) | \
309 (((_BiosCanDetect) & 0x1) << 16) | \
310 (((_VendorInfo) & 0xf) << 12) | \
311 (((_Type) & 0xf) << 8) | \
312 (((_Port) & 0xf) << 4) | \
321#define MESSAGING_DEVICE_PATH 0x03
326#define MSG_ATAPI_DP 0x01
346#define MSG_SCSI_DP 0x02
362#define MSG_FIBRECHANNEL_DP 0x03
382#define MSG_FIBRECHANNELEX_DP 0x15
402#define MSG_1394_DP 0x04
418#define MSG_USB_DP 0x05
434#define MSG_USB_CLASS_DP 0x0f
467#define MSG_USB_WWID_DP 0x10
498#define MSG_DEVICE_LOGICAL_UNIT_DP 0x11
510#define MSG_SATA_DP 0x12
533#define SATA_HBA_DIRECT_CONNECT_FLAG 0x8000
538#define MSG_I2O_DP 0x06
550#define MSG_MAC_ADDR_DP 0x0b
566#define MSG_IPv4_DP 0x0c
607#define MSG_IPv6_DP 0x0d
651#define MSG_INFINIBAND_DP 0x09
683#define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE 0x01
684#define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT 0x02
685#define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL 0x04
686#define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL 0x08
687#define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL 0x10
692#define MSG_UART_DP 0x0e
732#define NVDIMM_NAMESPACE_DP 0x20
744#define MSG_VENDOR_DP 0x0a
747#define DEVICE_PATH_MESSAGING_PC_ANSI EFI_PC_ANSI_GUID
748#define DEVICE_PATH_MESSAGING_VT_100 EFI_VT_100_GUID
749#define DEVICE_PATH_MESSAGING_VT_100_PLUS EFI_VT_100_PLUS_GUID
750#define DEVICE_PATH_MESSAGING_VT_UTF8 EFI_VT_UTF8_GUID
771#define UART_FLOW_CONTROL_HARDWARE 0x00000001
772#define UART_FLOW_CONTROL_XON_XOFF 0x00000010
774#define DEVICE_PATH_MESSAGING_SAS EFI_SAS_DEVICE_PATH_GUID
809#define MSG_SASEX_DP 0x16
833#define MSG_NVME_NAMESPACE_DP 0x17
837 UINT64 NamespaceUuid;
843#define MSG_NVME_OF_NAMESPACE_DP 0x22
853 UINT8 NamespaceId[16];
857 CHAR8 SubsystemNqn[];
863#define MSG_DNS_DP 0x1F
879#define MSG_URI_DP 0x18
891#define MSG_UFS_DP 0x19
907#define MSG_SD_DP 0x1A
916#define MSG_EMMC_DP 0x1D
925#define MSG_ISCSI_DP 0x13
952#define ISCSI_LOGIN_OPTION_NO_HEADER_DIGEST 0x0000
953#define ISCSI_LOGIN_OPTION_HEADER_DIGEST_USING_CRC32C 0x0002
954#define ISCSI_LOGIN_OPTION_NO_DATA_DIGEST 0x0000
955#define ISCSI_LOGIN_OPTION_DATA_DIGEST_USING_CRC32C 0x0008
956#define ISCSI_LOGIN_OPTION_AUTHMETHOD_CHAP 0x0000
957#define ISCSI_LOGIN_OPTION_AUTHMETHOD_NON 0x1000
958#define ISCSI_LOGIN_OPTION_CHAP_BI 0x0000
959#define ISCSI_LOGIN_OPTION_CHAP_UNI 0x2000
964#define MSG_VLAN_DP 0x14
976#define MSG_BLUETOOTH_DP 0x1b
988#define MSG_WIFI_DP 0x1C
1000#define MSG_BLUETOOTH_LE_DP 0x1E
1009#define MEDIA_DEVICE_PATH 0x04
1014#define MEDIA_HARDDRIVE_DP 0x01
1043 UINT8 Signature[16];
1059#define MBR_TYPE_PCAT 0x01
1060#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02
1062#define NO_DISK_SIGNATURE 0x00
1063#define SIGNATURE_TYPE_MBR 0x01
1064#define SIGNATURE_TYPE_GUID 0x02
1069#define MEDIA_CDROM_DP 0x02
1093#define MEDIA_VENDOR_DP 0x03
1098#define MEDIA_FILEPATH_DP 0x04
1107#define SIZE_OF_FILEPATH_DEVICE_PATH OFFSET_OF(FILEPATH_DEVICE_PATH,PathName)
1112#define MEDIA_PROTOCOL_DP 0x05
1130#define MEDIA_PIWG_FW_FILE_DP 0x06
1146#define MEDIA_PIWG_FW_VOL_DP 0x07
1162#define MEDIA_RELATIVE_OFFSET_RANGE_DP 0x08
1170 UINT64 StartingOffset;
1171 UINT64 EndingOffset;
1177#define EFI_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE
1179extern EFI_GUID gEfiVirtualDiskGuid;
1184#define EFI_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE
1191#define EFI_PERSISTENT_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT
1193extern EFI_GUID gEfiPersistentVirtualDiskGuid;
1198#define EFI_PERSISTENT_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT
1200extern EFI_GUID gEfiPersistentVirtualCdGuid;
1205#define MEDIA_RAM_DISK_DP 0x09
1215 UINT32 StartingAddr[2];
1219 UINT32 EndingAddr[2];
1233#define BBS_DEVICE_PATH 0x05
1238#define BBS_BBS_DP 0x01
1262#define BBS_TYPE_FLOPPY 0x01
1263#define BBS_TYPE_HARDDRIVE 0x02
1264#define BBS_TYPE_CDROM 0x03
1265#define BBS_TYPE_PCMCIA 0x04
1266#define BBS_TYPE_USB 0x05
1267#define BBS_TYPE_EMBEDDED_NETWORK 0x06
1268#define BBS_TYPE_BEV 0x80
1269#define BBS_TYPE_UNKNOWN 0xFF
1391#define END_DEVICE_PATH_TYPE 0x7f
1392#define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xFF
1393#define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01
1395extern EFI_GUID gEfiDevicePathProtocolGuid;
EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH
UINT64 EFI_PHYSICAL_ADDRESS
BLUETOOTH_ADDRESS BD_ADDR
EFI_IPv4_ADDRESS GatewayIpAddress
EFI_IPv4_ADDRESS SubnetMask
EFI_IPv4_ADDRESS LocalIpAddress
EFI_IPv4_ADDRESS RemoteIpAddress
EFI_IPv6_ADDRESS LocalIpAddress
EFI_IPv6_ADDRESS RemoteIpAddress
EFI_IPv6_ADDRESS GatewayIpAddress
UINT16 TargetPortalGroupTag
EFI_MAC_ADDRESS MacAddress
EFI_PHYSICAL_ADDRESS StartingAddress
EFI_PHYSICAL_ADDRESS EndingAddress
UINT16 RelativeTargetPort
UINT16 RelativeTargetPort
UINT16 PortMultiplierPortNumber