19 #ifndef __EFI_DEVICE_PATH_PROTOCOL_H__ 20 #define __EFI_DEVICE_PATH_PROTOCOL_H__ 31 #define EFI_DEVICE_PATH_PROTOCOL_GUID \ 33 0x9576e91, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ 39 #define DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH_PROTOCOL_GUID 77 #define HARDWARE_DEVICE_PATH 0x01 82 #define HW_PCI_DP 0x01 102 #define HW_PCCARD_DP 0x02 118 #define HW_MEMMAP_DP 0x03 142 #define HW_VENDOR_DP 0x04 163 #define HW_CONTROLLER_DP 0x05 179 #define HW_BMC_DP 0x06 199 #define ACPI_DEVICE_PATH 0x02 226 #define ACPI_EXTENDED_DP 0x02 262 #define PNP_EISA_ID_CONST 0x41d0 263 #define EISA_ID(_Name, _Num) ((UINT32)((_Name) | (_Num) << 16)) 264 #define EISA_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId))) 265 #define EFI_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId))) 267 #define PNP_EISA_ID_MASK 0xffff 268 #define EISA_ID_TO_NUM(_Id) ((_Id) >> 16) 273 #define ACPI_ADR_DP 0x03 293 #define ACPI_ADR_DISPLAY_TYPE_OTHER 0 294 #define ACPI_ADR_DISPLAY_TYPE_VGA 1 295 #define ACPI_ADR_DISPLAY_TYPE_TV 2 296 #define ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL 3 297 #define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL 4 299 #define ACPI_DISPLAY_ADR(_DeviceIdScheme, _HeadId, _NonVgaOutput, _BiosCanDetect, _VendorInfo, _Type, _Port, _Index) \ 300 ((UINT32)( ((UINT32)((_DeviceIdScheme) & 0x1) << 31) | \ 301 (((_HeadId) & 0x7) << 18) | \ 302 (((_NonVgaOutput) & 0x1) << 17) | \ 303 (((_BiosCanDetect) & 0x1) << 16) | \ 304 (((_VendorInfo) & 0xf) << 12) | \ 305 (((_Type) & 0xf) << 8) | \ 306 (((_Port) & 0xf) << 4) | \ 315 #define MESSAGING_DEVICE_PATH 0x03 320 #define MSG_ATAPI_DP 0x01 340 #define MSG_SCSI_DP 0x02 356 #define MSG_FIBRECHANNEL_DP 0x03 376 #define MSG_FIBRECHANNELEX_DP 0x15 396 #define MSG_1394_DP 0x04 412 #define MSG_USB_DP 0x05 428 #define MSG_USB_CLASS_DP 0x0f 461 #define MSG_USB_WWID_DP 0x10 492 #define MSG_DEVICE_LOGICAL_UNIT_DP 0x11 504 #define MSG_SATA_DP 0x12 527 #define SATA_HBA_DIRECT_CONNECT_FLAG 0x8000 532 #define MSG_I2O_DP 0x06 544 #define MSG_MAC_ADDR_DP 0x0b 560 #define MSG_IPv4_DP 0x0c 601 #define MSG_IPv6_DP 0x0d 645 #define MSG_INFINIBAND_DP 0x09 677 #define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE 0x01 678 #define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT 0x02 679 #define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL 0x04 680 #define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL 0x08 681 #define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL 0x10 686 #define MSG_UART_DP 0x0e 726 #define MSG_VENDOR_DP 0x0a 729 #define DEVICE_PATH_MESSAGING_PC_ANSI EFI_PC_ANSI_GUID 730 #define DEVICE_PATH_MESSAGING_VT_100 EFI_VT_100_GUID 731 #define DEVICE_PATH_MESSAGING_VT_100_PLUS EFI_VT_100_PLUS_GUID 732 #define DEVICE_PATH_MESSAGING_VT_UTF8 EFI_VT_UTF8_GUID 753 #define UART_FLOW_CONTROL_HARDWARE 0x00000001 754 #define UART_FLOW_CONTROL_XON_XOFF 0x00000010 756 #define DEVICE_PATH_MESSAGING_SAS EFI_SAS_DEVICE_PATH_GUID 791 #define MSG_SASEX_DP 0x16 815 #define MSG_NVME_NAMESPACE_DP 0x17 825 #define MSG_URI_DP 0x18 837 #define MSG_UFS_DP 0x19 853 #define MSG_SD_DP 0x1A 862 #define MSG_EMMC_DP 0x1D 871 #define MSG_ISCSI_DP 0x13 898 #define ISCSI_LOGIN_OPTION_NO_HEADER_DIGEST 0x0000 899 #define ISCSI_LOGIN_OPTION_HEADER_DIGEST_USING_CRC32C 0x0002 900 #define ISCSI_LOGIN_OPTION_NO_DATA_DIGEST 0x0000 901 #define ISCSI_LOGIN_OPTION_DATA_DIGEST_USING_CRC32C 0x0008 902 #define ISCSI_LOGIN_OPTION_AUTHMETHOD_CHAP 0x0000 903 #define ISCSI_LOGIN_OPTION_AUTHMETHOD_NON 0x1000 904 #define ISCSI_LOGIN_OPTION_CHAP_BI 0x0000 905 #define ISCSI_LOGIN_OPTION_CHAP_UNI 0x2000 910 #define MSG_VLAN_DP 0x14 922 #define MSG_BLUETOOTH_DP 0x1b 934 #define MSG_WIFI_DP 0x1C 946 #define MEDIA_DEVICE_PATH 0x04 951 #define MEDIA_HARDDRIVE_DP 0x01 996 #define MBR_TYPE_PCAT 0x01 997 #define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02 999 #define NO_DISK_SIGNATURE 0x00 1000 #define SIGNATURE_TYPE_MBR 0x01 1001 #define SIGNATURE_TYPE_GUID 0x02 1006 #define MEDIA_CDROM_DP 0x02 1030 #define MEDIA_VENDOR_DP 0x03 1035 #define MEDIA_FILEPATH_DP 0x04 1044 #define SIZE_OF_FILEPATH_DEVICE_PATH OFFSET_OF(FILEPATH_DEVICE_PATH,PathName) 1049 #define MEDIA_PROTOCOL_DP 0x05 1067 #define MEDIA_PIWG_FW_FILE_DP 0x06 1083 #define MEDIA_PIWG_FW_VOL_DP 0x07 1099 #define MEDIA_RELATIVE_OFFSET_RANGE_DP 0x08 1114 #define EFI_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE 1121 #define EFI_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE 1128 #define EFI_PERSISTENT_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT 1135 #define EFI_PERSISTENT_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT 1142 #define MEDIA_RAM_DISK_DP 0x09 1170 #define BBS_DEVICE_PATH 0x05 1175 #define BBS_BBS_DP 0x01 1199 #define BBS_TYPE_FLOPPY 0x01 1200 #define BBS_TYPE_HARDDRIVE 0x02 1201 #define BBS_TYPE_CDROM 0x03 1202 #define BBS_TYPE_PCMCIA 0x04 1203 #define BBS_TYPE_USB 0x05 1204 #define BBS_TYPE_EMBEDDED_NETWORK 0x06 1205 #define BBS_TYPE_BEV 0x80 1206 #define BBS_TYPE_UNKNOWN 0xFF 1327 #define END_DEVICE_PATH_TYPE 0x7f 1328 #define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xFF 1329 #define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01 INFINIBAND_DEVICE_PATH * InfiniBand
UINT32 Reserved
Reserved for future use.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
CONTROLLER_DEVICE_PATH Controller
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 Parity
The parity setting for the UART style device.
UINT32 MemoryType
EFI_MEMORY_TYPE.
ACPI_HID_DEVICE_PATH Acpi
UINT16 DeviceType
Device Type as defined by the BIOS Boot Specification.
NVME_NAMESPACE_DEVICE_PATH NvmeNamespace
UINT32 Reserved
Reserved for the future.
ACPI_HID_DEVICE_PATH * Acpi
UINT16 ProductId
Product ID assigned by USB-IF.
UINT16 VendorId
USB vendor id of the device.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL DevPath
VENDOR_DEVICE_PATH VENDOR_DEFINED_DEVICE_PATH
MAC_ADDR_DEVICE_PATH MacAddr
128 bit buffer containing a unique identifier value.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 IfType
Network interface type(i.e.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 SignatureType
Type of Disk Signature: (Unused values reserved).
Memory Mapped Device Path.
32-byte buffer containing a network Media Access Control address.
F1394_DEVICE_PATH * F1394
EFI_DEVICE_PATH_PROTOCOL Header
EFI_MAC_ADDRESS MacAddress
The MAC address for a network interface padded with 0s.
ACPI_ADR_DEVICE_PATH * AcpiAdr
SASEX_DEVICE_PATH * SasEx
EFI_IPv4_ADDRESS RemoteIpAddress
The remote IPv4 address.
MEDIA_PROTOCOL_DEVICE_PATH * MediaProtocol
EFI_DEVICE_PATH_PROTOCOL Header
MEDIA_RAM_DISK_DEVICE_PATH * RamDisk
UINT8 Lun
Logical Unit Number for the interface.
UINT32 FlowControlMap
Bitmap of supported flow control types.
EFI_DEVICE_PATH_PROTOCOL * DevPath
FIBRECHANNELEX_DEVICE_PATH FibreChannelEx
EFI_GUID Guid
DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL GUID.
MEDIA_RAM_DISK_DEVICE_PATH RamDisk
EFI_DEVICE_PATH_PROTOCOL Header
BOOLEAN StaticIpAddress
0x00 - The Source IP Address was assigned though DHCP.
EFI_DEVICE_PATH_PROTOCOL Header
ACPI 6.0 definitions from the ACPI Specification Revision 6.0 Errata A January, 2016.
UINT8 DeviceClass
The class code assigned by the USB-IF.
EFI_DEVICE_PATH_PROTOCOL Header
This protocol can be used on any device handle to obtain generic path/location information concerning...
UINT8 Lun
Logical Unit Number (LUN).
UINT16 LoginOption
iSCSI Login Options.
EFI_DEVICE_PATH_PROTOCOL Header
BLUETOOTH_ADDRESS BD_ADDR
48bit Bluetooth device address.
EFI_DEVICE_PATH_PROTOCOL Header
UINT16 HBAPortNumber
The HBA port number that facilitates the connection to the device or a port multiplier.
MEMMAP_DEVICE_PATH MemMap
UINT8 DeviceSubClass
The subclass code assigned by the USB-IF.
Terminal Device Path Vendor Guid.
UINT64 EFI_PHYSICAL_ADDRESS
64-bit physical memory address.
UINT32 ResourceFlags
Flags to help identify/manage InfiniBand device path elements: Bit 0 - IOC/Service (0b = IOC,...
The _ADR device path is used to contain video output device attributes to support the Graphics Output...
UINT8 FunctionNumber
Function Number (0 = First Function).
UINT16 InterfaceNumber
USB interface number.
UINT32 BootEntry
Boot Entry number from the Boot Catalog.
EFI_DEVICE_PATH_PROTOCOL Header
UINT16 VendorId
Vendor ID assigned by USB-IF.
FIBRECHANNELEX_DEVICE_PATH * FibreChannelEx
EFI_DEVICE_PATH_PROTOCOL Header
EFI_IPv4_ADDRESS GatewayIpAddress
The gateway IP address.
UINT8 Device
PCI Device Number.
ISCSI_DEVICE_PATH * Iscsi
EFI_GUID Guid
Vendor-assigned GUID that defines the data that follows.
UINT16 RelativeTargetPort
Relative Target Port (RTP).
UINT32 ControllerNumber
Controller number.
EFI_DEVICE_PATH_PROTOCOL Header
UINT64 Lun
SAS Logical Unit Number.
EFI_GUID gEfiPersistentVirtualDiskGuid
USB_WWID_DEVICE_PATH UsbWwid
Union of all possible Device Paths and pointers to Device Paths.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_PHYSICAL_ADDRESS StartingAddress
Starting Memory Address.
PCCARD_DEVICE_PATH * PcCard
BLUETOOTH_DEVICE_PATH Bluetooth
MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH Offset
EFI_GUID gEfiDevicePathProtocolGuid
DEVICE_LOGICAL_UNIT_DEVICE_PATH LogicUnit
ACPI_EXTENDED_HID_DEVICE_PATH * ExtendedAcpi
UINT8 InterfaceType
Interface Type.
UINT16 Protocol
The network protocol(i.e.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
The Vendor Device Path allows the creation of vendor-defined Device Paths.
UINT8 DeviceProtocol
The protocol code assigned by the USB-IF.
UINT32 Reserved
Reserved for the future.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 ParentPortNumber
USB Parent Port Number.
UINT64 PartitionStart
Starting LBA of the partition on the hard drive.
This Device Path is used to describe the booting of non-EFI-aware operating systems.
UINT16 VlanId
VLAN identifier (0-4094).
UINT16 StatusFlag
Status Flags as defined by the BIOS Boot Specification.
FILEPATH_DEVICE_PATH * FilePath
EFI_IPv6_ADDRESS GatewayIpAddress
The gateway IP address.
UINT16 LocalPort
The local port number.
UINT64 Lun
iSCSI Logical Unit Number.
USB_CLASS_DEVICE_PATH UsbClass
FILEPATH_DEVICE_PATH FilePath
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 MBRType
Partition Format: (Unused values reserved).
UINT16 ProductId
USB product id of the device.
CONTROLLER_DEVICE_PATH * Controller
UINT8_t Signature[6]
Signature.
Serial Attached SCSI (SAS) Device Path.
EFI_DEVICE_PATH_PROTOCOL Header
UINT16 DeviceTopology
More Information about the device and its interconnect.
UINT8 InterfaceNumber
USB Interface Number.
UINT16 Lun
Logical Unit Number.
The CD-ROM Media Device Path is used to define a system partition that exists on a CD-ROM.
UINT32 CID
Device's compatible PnP hardware ID stored in a numeric 32-bit compressed EISA-type ID.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 Function
PCI Function Number.
NVME_NAMESPACE_DEVICE_PATH * NvmeNamespace
UINT32 HID
Device's PnP hardware ID stored in a numeric 32-bit compressed EISA-type ID.
EFI_IPv6_ADDRESS RemoteIpAddress
The remote IPv6 address.
UINT64 DeviceId
64-bit persistent ID of remote device.
UINT8 SlaveMaster
Set to zero for master, or one for slave mode.
UINT8 PrimarySecondary
Set to zero for primary, or one for secondary.
UINT8 Pun
Target ID on the UFS bus (PUN).
ACPI_ADR_DEVICE_PATH AcpiAdr
This file contains the Bluetooth definitions that are consumed by drivers.
UINT64 PartitionSize
Size of the partition in units of Logical Blocks.
UINT16 Protocol
The network protocol(i.e.
EFI_DEVICE_PATH_PROTOCOL Header
unsigned long long UINT64
FIBRECHANNEL_DEVICE_PATH FibreChannel
UINT16 RemotePort
The remote port number.
UINT64 PartitionStart
Starting RBA of the partition on the medium.
MAC_ADDR_DEVICE_PATH * MacAddr
EFI_PHYSICAL_ADDRESS EndingAddress
Ending Memory Address.
UINT16 LocalPort
The local port number.
UINT32 PartitionNumber
Describes the entry in a partition table, starting with entry 1.
INFINIBAND_DEVICE_PATH InfiniBand
UART_FLOW_CONTROL_DEVICE_PATH UartFlowControl
EFI_DEVICE_PATH_PROTOCOL Header
UINT64 TargetPortId
64-bit persistent ID of remote IOC port.
HARDDRIVE_DEVICE_PATH HardDrive
USB_CLASS_DEVICE_PATH * UsbClass
MEDIA_FW_VOL_DEVICE_PATH * FirmwareVolume
UINT64 ServiceId
64-bit unique identifier to remote IOC or server process.
EFI_GUID gEfiVirtualDiskGuid
ACPI_EXTENDED_HID_DEVICE_PATH ExtendedAcpi
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 StopBits
The number of stop bits for the UART style device.
EFI_DEVICE_PATH_PROTOCOL Header
ATAPI_DEVICE_PATH * Atapi
MEMMAP_DEVICE_PATH * MemMap
EFI_DEVICE_PATH_PROTOCOL Header
UINT32 UID
Unique ID that is required by ACPI if two devices have the same _HID.
UINT8 PrefixLength
The prefix length.
UINT16 RemotePort
The remote port number.
UINT8 SubType
Varies by Type 0xFF End Entire Device Path, or 0x01 End This Instance of a Device Path and start a ne...
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH * FirmwareFile
The Hard Drive Media Device Path is used to represent a partition on a hard drive.
UINT16 Pun
Target ID on the SCSI bus (PUN).
EFI_IPv6_ADDRESS LocalIpAddress
The local IPv6 address.
UINT16 Lun
Logical Unit Number (LUN).
UINT16 TargetPortalGroupTag
iSCSI Target Portal group tag the initiator intends to establish a session with.
UINT64 WWN
Fibre Channel World Wide Number.
EFI_DEVICE_PATH_PROTOCOL Header
A new device path node is defined to declare flow control characteristics.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
VENDOR_DEVICE_PATH Vendor
EFI_GUID gEfiVirtualCdGuid
EFI_DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH
Device Path protocol definition for backward-compatible with EFI1.1.
UINT8 Type
0x01 Hardware Device Path.
UINT16 DeviceTopology
More Information about the device and its interconnect.
UINT16 PortMultiplierPortNumber
The Port multiplier port number that facilitates the connection to the device.
UINT32 HID
Device's PnP hardware ID stored in a numeric 32-bit compressed EISA-type ID.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_GUID Guid
DEVICE_PATH_MESSAGING_SAS GUID.
VENDOR_DEVICE_PATH * Vendor
UINT64 BaudRate
The baud rate setting for the UART style device.
EFI_DEVICE_PATH_PROTOCOL Header
EFI_DEVICE_PATH_PROTOCOL Header
BBS_BBS_DEVICE_PATH * Bbs
PCCARD_DEVICE_PATH PcCard
UINT16 RelativeTargetPort
Relative Target Port (RTP).
MEDIA_PROTOCOL_DEVICE_PATH MediaProtocol
UINT64 PartitionSize
Size of the partition in units of Blocks, also called Sectors.
EFI_DEVICE_PATH_PROTOCOL Header
UINT8 IpAddressOrigin
0x00 - The Local IP Address was manually configured.
UINT32 UID
Unique ID that is required by ACPI if two devices have the same _HID.
This device path describes a USB device using its serial number.
HARDDRIVE_DEVICE_PATH * HardDrive
UINT64 SasAddress
SAS Address for Serial Attached SCSI Target.
UINT64 Lun
Fibre Channel Logical Unit Number.
BLUETOOTH_DEVICE_PATH * Bluetooth
UINT32 Tid
Target ID (TID) for a device.
UINT16 Lun
Logical Unit Number.
EFI_IPv4_ADDRESS LocalIpAddress
The local IPv4 address.
UINT8 DataBits
The number of data bits for the UART style device.
FIBRECHANNEL_DEVICE_PATH * FibreChannel
EFI_GUID gEfiPersistentVirtualCdGuid
UINT16 NetworkProtocol
Network Protocol (0 = TCP, 1+ = reserved).
EFI_DEVICE_PATH_PROTOCOL Header
MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH * Offset
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FirmwareFile
EFI_DEVICE_PATH_PROTOCOL Header
UART_FLOW_CONTROL_DEVICE_PATH * UartFlowControl
USB_WWID_DEVICE_PATH * UsbWwid
UINT64 Guid
1394 Global Unique ID (GUID).
UINT32 Reserved
Reserved for the future.
MEDIA_FW_VOL_DEVICE_PATH FirmwareVolume
DEVICE_LOGICAL_UNIT_DEVICE_PATH * LogicUnit
EFI_IPv4_ADDRESS SubnetMask
The subnet mask.