13 #ifndef __EFI_DEVICE_PATH_PROTOCOL_H__ 14 #define __EFI_DEVICE_PATH_PROTOCOL_H__ 25 #define EFI_DEVICE_PATH_PROTOCOL_GUID \ 27 0x9576e91, 0x6d3f, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ 33 #define DEVICE_PATH_PROTOCOL EFI_DEVICE_PATH_PROTOCOL_GUID 70 #define HARDWARE_DEVICE_PATH 0x01 75 #define HW_PCI_DP 0x01 95 #define HW_PCCARD_DP 0x02 111 #define HW_MEMMAP_DP 0x03 135 #define HW_VENDOR_DP 0x04 156 #define HW_CONTROLLER_DP 0x05 172 #define HW_BMC_DP 0x06 192 #define ACPI_DEVICE_PATH 0x02 219 #define ACPI_EXTENDED_DP 0x02 255 #define PNP_EISA_ID_CONST 0x41d0 256 #define EISA_ID(_Name, _Num) ((UINT32)((_Name) | (_Num) << 16)) 257 #define EISA_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId))) 258 #define EFI_PNP_ID(_PNPId) (EISA_ID(PNP_EISA_ID_CONST, (_PNPId))) 260 #define PNP_EISA_ID_MASK 0xffff 261 #define EISA_ID_TO_NUM(_Id) ((_Id) >> 16) 266 #define ACPI_ADR_DP 0x03 289 #define ACPI_NVDIMM_DP 0x04 301 #define ACPI_ADR_DISPLAY_TYPE_OTHER 0 302 #define ACPI_ADR_DISPLAY_TYPE_VGA 1 303 #define ACPI_ADR_DISPLAY_TYPE_TV 2 304 #define ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL 3 305 #define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL 4 307 #define ACPI_DISPLAY_ADR(_DeviceIdScheme, _HeadId, _NonVgaOutput, _BiosCanDetect, _VendorInfo, _Type, _Port, _Index) \ 308 ((UINT32)( ((UINT32)((_DeviceIdScheme) & 0x1) << 31) | \ 309 (((_HeadId) & 0x7) << 18) | \ 310 (((_NonVgaOutput) & 0x1) << 17) | \ 311 (((_BiosCanDetect) & 0x1) << 16) | \ 312 (((_VendorInfo) & 0xf) << 12) | \ 313 (((_Type) & 0xf) << 8) | \ 314 (((_Port) & 0xf) << 4) | \ 323 #define MESSAGING_DEVICE_PATH 0x03 328 #define MSG_ATAPI_DP 0x01 348 #define MSG_SCSI_DP 0x02 364 #define MSG_FIBRECHANNEL_DP 0x03 384 #define MSG_FIBRECHANNELEX_DP 0x15 404 #define MSG_1394_DP 0x04 420 #define MSG_USB_DP 0x05 436 #define MSG_USB_CLASS_DP 0x0f 469 #define MSG_USB_WWID_DP 0x10 500 #define MSG_DEVICE_LOGICAL_UNIT_DP 0x11 512 #define MSG_SATA_DP 0x12 535 #define SATA_HBA_DIRECT_CONNECT_FLAG 0x8000 540 #define MSG_I2O_DP 0x06 552 #define MSG_MAC_ADDR_DP 0x0b 568 #define MSG_IPv4_DP 0x0c 609 #define MSG_IPv6_DP 0x0d 653 #define MSG_INFINIBAND_DP 0x09 685 #define INFINIBAND_RESOURCE_FLAG_IOC_SERVICE 0x01 686 #define INFINIBAND_RESOURCE_FLAG_EXTENDED_BOOT_ENVIRONMENT 0x02 687 #define INFINIBAND_RESOURCE_FLAG_CONSOLE_PROTOCOL 0x04 688 #define INFINIBAND_RESOURCE_FLAG_STORAGE_PROTOCOL 0x08 689 #define INFINIBAND_RESOURCE_FLAG_NETWORK_PROTOCOL 0x10 694 #define MSG_UART_DP 0x0e 734 #define NVDIMM_NAMESPACE_DP 0x20 746 #define MSG_VENDOR_DP 0x0a 749 #define DEVICE_PATH_MESSAGING_PC_ANSI EFI_PC_ANSI_GUID 750 #define DEVICE_PATH_MESSAGING_VT_100 EFI_VT_100_GUID 751 #define DEVICE_PATH_MESSAGING_VT_100_PLUS EFI_VT_100_PLUS_GUID 752 #define DEVICE_PATH_MESSAGING_VT_UTF8 EFI_VT_UTF8_GUID 773 #define UART_FLOW_CONTROL_HARDWARE 0x00000001 774 #define UART_FLOW_CONTROL_XON_XOFF 0x00000010 776 #define DEVICE_PATH_MESSAGING_SAS EFI_SAS_DEVICE_PATH_GUID 811 #define MSG_SASEX_DP 0x16 835 #define MSG_NVME_NAMESPACE_DP 0x17 845 #define MSG_NVME_OF_NAMESPACE_DP 0x22 865 #define MSG_DNS_DP 0x1F 881 #define MSG_URI_DP 0x18 893 #define MSG_UFS_DP 0x19 909 #define MSG_SD_DP 0x1A 918 #define MSG_EMMC_DP 0x1D 927 #define MSG_ISCSI_DP 0x13 954 #define ISCSI_LOGIN_OPTION_NO_HEADER_DIGEST 0x0000 955 #define ISCSI_LOGIN_OPTION_HEADER_DIGEST_USING_CRC32C 0x0002 956 #define ISCSI_LOGIN_OPTION_NO_DATA_DIGEST 0x0000 957 #define ISCSI_LOGIN_OPTION_DATA_DIGEST_USING_CRC32C 0x0008 958 #define ISCSI_LOGIN_OPTION_AUTHMETHOD_CHAP 0x0000 959 #define ISCSI_LOGIN_OPTION_AUTHMETHOD_NON 0x1000 960 #define ISCSI_LOGIN_OPTION_CHAP_BI 0x0000 961 #define ISCSI_LOGIN_OPTION_CHAP_UNI 0x2000 966 #define MSG_VLAN_DP 0x14 978 #define MSG_BLUETOOTH_DP 0x1b 990 #define MSG_WIFI_DP 0x1C 1002 #define MSG_BLUETOOTH_LE_DP 0x1E 1011 #define MEDIA_DEVICE_PATH 0x04 1016 #define MEDIA_HARDDRIVE_DP 0x01 1061 #define MBR_TYPE_PCAT 0x01 1062 #define MBR_TYPE_EFI_PARTITION_TABLE_HEADER 0x02 1064 #define NO_DISK_SIGNATURE 0x00 1065 #define SIGNATURE_TYPE_MBR 0x01 1066 #define SIGNATURE_TYPE_GUID 0x02 1071 #define MEDIA_CDROM_DP 0x02 1095 #define MEDIA_VENDOR_DP 0x03 1100 #define MEDIA_FILEPATH_DP 0x04 1109 #define SIZE_OF_FILEPATH_DEVICE_PATH OFFSET_OF(FILEPATH_DEVICE_PATH,PathName) 1114 #define MEDIA_PROTOCOL_DP 0x05 1132 #define MEDIA_PIWG_FW_FILE_DP 0x06 1148 #define MEDIA_PIWG_FW_VOL_DP 0x07 1164 #define MEDIA_RELATIVE_OFFSET_RANGE_DP 0x08 1179 #define EFI_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE 1186 #define EFI_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE 1193 #define EFI_PERSISTENT_VIRTUAL_DISK_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT 1200 #define EFI_PERSISTENT_VIRTUAL_CD_GUID EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT 1207 #define MEDIA_RAM_DISK_DP 0x09 1235 #define BBS_DEVICE_PATH 0x05 1240 #define BBS_BBS_DP 0x01 1264 #define BBS_TYPE_FLOPPY 0x01 1265 #define BBS_TYPE_HARDDRIVE 0x02 1266 #define BBS_TYPE_CDROM 0x03 1267 #define BBS_TYPE_PCMCIA 0x04 1268 #define BBS_TYPE_USB 0x05 1269 #define BBS_TYPE_EMBEDDED_NETWORK 0x06 1270 #define BBS_TYPE_BEV 0x80 1271 #define BBS_TYPE_UNKNOWN 0xFF 1393 #define END_DEVICE_PATH_TYPE 0x7f 1394 #define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xFF 1395 #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
NVME_OF_NAMESPACE_DEVICE_PATH * NvmeOfNamespace
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
EFI_DEVICE_PATH_PROTOCOL Header
SASEX_DEVICE_PATH * SasEx
NVME_OF_NAMESPACE_DEVICE_PATH NvmeOfNamespace
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.
EFI_DEVICE_PATH_PROTOCOL Header
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.
FILE_LICENCE(BSD2_PATENT)
UINT8_t Length
Length of this structure.
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
BLUETOOTH_LE_ADDRESS Address
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
16-byte buffer aligned on a 4-byte boundary.
UINT8 InterfaceType
Interface Type.
UINT16 Protocol
The network protocol(i.e.
EFI_DEVICE_PATH_PROTOCOL Header
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.
EFI_DEVICE_PATH_PROTOCOL Header
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
EFI_GUID Uuid
Namespace unique label identifier UUID.
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.
EFI_DEVICE_PATH_PROTOCOL Header
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
UINT32 NFITDeviceHandle
NFIT Device Handle, the _ADR of the NVDIMM device.
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).
UINT8 NamespaceIdType
Namespace Identifier Type (NIDT)
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.
UINT8 IsIPv6
Indicates the DNS server address is IPv4 or IPv6 address.
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.