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_DNS_DP 0x1F
859#define MSG_URI_DP 0x18
871#define MSG_UFS_DP 0x19
887#define MSG_SD_DP 0x1A
896#define MSG_EMMC_DP 0x1D
905#define MSG_ISCSI_DP 0x13
932#define ISCSI_LOGIN_OPTION_NO_HEADER_DIGEST 0x0000
933#define ISCSI_LOGIN_OPTION_HEADER_DIGEST_USING_CRC32C 0x0002
934#define ISCSI_LOGIN_OPTION_NO_DATA_DIGEST 0x0000
935#define ISCSI_LOGIN_OPTION_DATA_DIGEST_USING_CRC32C 0x0008
936#define ISCSI_LOGIN_OPTION_AUTHMETHOD_CHAP 0x0000
937#define ISCSI_LOGIN_OPTION_AUTHMETHOD_NON 0x1000
938#define ISCSI_LOGIN_OPTION_CHAP_BI 0x0000
939#define ISCSI_LOGIN_OPTION_CHAP_UNI 0x2000
944#define MSG_VLAN_DP 0x14
956#define MSG_BLUETOOTH_DP 0x1b
968#define MSG_WIFI_DP 0x1C
980#define MSG_BLUETOOTH_LE_DP 0x1E
989#define MEDIA_DEVICE_PATH 0x04
994#define MEDIA_HARDDRIVE_DP 0x01
1023 UINT8 Signature[16];
1039#define MBR_TYPE_PCAT 0x01
1040#define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02
1042#define NO_DISK_SIGNATURE 0x00
1043#define SIGNATURE_TYPE_MBR 0x01
1044#define SIGNATURE_TYPE_GUID 0x02
1049#define MEDIA_CDROM_DP 0x02
1073#define MEDIA_VENDOR_DP 0x03
1078#define MEDIA_FILEPATH_DP 0x04
1087#define SIZE_OF_FILEPATH_DEVICE_PATH OFFSET_OF(FILEPATH_DEVICE_PATH,PathName)
1092#define MEDIA_PROTOCOL_DP 0x05
1110#define MEDIA_PIWG_FW_FILE_DP 0x06
1126#define MEDIA_PIWG_FW_VOL_DP 0x07
1142#define MEDIA_RELATIVE_OFFSET_RANGE_DP 0x08
1150 UINT64 StartingOffset;
1151 UINT64 EndingOffset;
1157#define EFI_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE
1159extern EFI_GUID gEfiVirtualDiskGuid;
1164#define EFI_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE
1171#define EFI_PERSISTENT_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT
1173extern EFI_GUID gEfiPersistentVirtualDiskGuid;
1178#define EFI_PERSISTENT_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT
1180extern EFI_GUID gEfiPersistentVirtualCdGuid;
1185#define MEDIA_RAM_DISK_DP 0x09
1195 UINT32 StartingAddr[2];
1199 UINT32 EndingAddr[2];
1213#define BBS_DEVICE_PATH 0x05
1218#define BBS_BBS_DP 0x01
1242#define BBS_TYPE_FLOPPY 0x01
1243#define BBS_TYPE_HARDDRIVE 0x02
1244#define BBS_TYPE_CDROM 0x03
1245#define BBS_TYPE_PCMCIA 0x04
1246#define BBS_TYPE_USB 0x05
1247#define BBS_TYPE_EMBEDDED_NETWORK 0x06
1248#define BBS_TYPE_BEV 0x80
1249#define BBS_TYPE_UNKNOWN 0xFF
1369#define END_DEVICE_PATH_TYPE 0x7f
1370#define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xFF
1371#define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01
1373extern 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