]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/DevicePath.h
MdePkg/DevicePath: Add BluetoothLe device path node support
[mirror_edk2.git] / MdePkg / Include / Protocol / DevicePath.h
index dee780c35f8f340eba05020ff0007f551612e356..220fa90765326c3c327b747b9061b4d9228374cc 100644 (file)
@@ -5,7 +5,7 @@
   from a software point of view. The path must persist from boot to boot, so \r
   it can not contain things like PCI bus numbers that change from boot to boot.\r
 \r
-Copyright (c) 2006 - 2010, Intel Corporation.  All rights reserved<BR>\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available under \r
 the terms and conditions of the BSD License that accompanies this distribution.  \r
 The full text of the license may be found at\r
@@ -20,6 +20,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define __EFI_DEVICE_PATH_PROTOCOL_H__\r
 \r
 #include <Guid/PcAnsi.h>\r
+#include <IndustryStandard/Bluetooth.h>\r
+#include <IndustryStandard/Acpi60.h>\r
 \r
 ///\r
 /// Device Path protocol.\r
@@ -169,6 +171,26 @@ typedef struct {
   UINT32                          ControllerNumber;\r
 } CONTROLLER_DEVICE_PATH;\r
 \r
+///\r
+/// BMC Device Path SubType.\r
+///\r
+#define HW_BMC_DP                 0x06\r
+\r
+///\r
+/// BMC Device Path.\r
+///\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  ///\r
+  /// Interface Type.\r
+  ///\r
+  UINT8                           InterfaceType;\r
+  ///\r
+  /// Base Address.\r
+  ///\r
+  UINT8                           BaseAddress[8];\r
+} BMC_DEVICE_PATH;\r
+\r
 ///\r
 /// ACPI Device Paths.\r
 ///\r
@@ -273,14 +295,14 @@ typedef struct {
 #define ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL  4\r
 \r
 #define ACPI_DISPLAY_ADR(_DeviceIdScheme, _HeadId, _NonVgaOutput, _BiosCanDetect, _VendorInfo, _Type, _Port, _Index) \\r
-          ((UINT32)( (((_DeviceIdScheme) & 0x1) << 31) |  \\r
-                      (((_HeadId)         & 0x7) << 18) |  \\r
-                      (((_NonVgaOutput)   & 0x1) << 17) |  \\r
-                      (((_BiosCanDetect)  & 0x1) << 16) |  \\r
-                      (((_VendorInfo)     & 0xf) << 12) |  \\r
-                      (((_Type)           & 0xf) << 8)  |  \\r
-                      (((_Port)           & 0xf) << 4)  |  \\r
-                       ((_Index)          & 0xf) ))\r
+          ((UINT32)(  ((UINT32)((_DeviceIdScheme) & 0x1) << 31) |  \\r
+                      (((_HeadId)                 & 0x7) << 18) |  \\r
+                      (((_NonVgaOutput)           & 0x1) << 17) |  \\r
+                      (((_BiosCanDetect)          & 0x1) << 16) |  \\r
+                      (((_VendorInfo)             & 0xf) << 12) |  \\r
+                      (((_Type)                   & 0xf) << 8)  |  \\r
+                      (((_Port)                   & 0xf) << 4)  |  \\r
+                       ((_Index)                  & 0xf) ))\r
 \r
 ///\r
 /// Messaging Device Paths.\r
@@ -346,6 +368,26 @@ typedef struct {
   UINT64                          Lun;\r
 } FIBRECHANNEL_DEVICE_PATH;\r
 \r
+///\r
+/// Fibre Channel Ex SubType.\r
+///\r
+#define MSG_FIBRECHANNELEX_DP     0x15\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  ///\r
+  /// Reserved for the future.\r
+  ///\r
+  UINT32                          Reserved;\r
+  ///\r
+  /// 8 byte array containing Fibre Channel End Device Port Name.\r
+  ///\r
+  UINT8                           WWN[8];\r
+  ///\r
+  /// 8 byte array containing Fibre Channel Logical Unit Number.\r
+  ///\r
+  UINT8                           Lun[8];\r
+} FIBRECHANNELEX_DEVICE_PATH;\r
+\r
 ///\r
 /// 1394 Device Path SubType\r
 ///\r
@@ -467,7 +509,7 @@ typedef struct {
   UINT16                          HBAPortNumber;\r
   ///\r
   /// The Port multiplier port number that facilitates the connection\r
-  /// to the device. Bit 15 should be set if the device is directly\r
+  /// to the device. Must be set to 0xFFFF if the device is directly\r
   /// connected to the HBA.\r
   ///\r
   UINT16                          PortMultiplierPortNumber;\r
@@ -541,6 +583,14 @@ typedef struct {
   /// 0x01 - The Source IP Address is statically bound.\r
   ///\r
   BOOLEAN                         StaticIpAddress;\r
+  ///\r
+  /// The gateway IP address\r
+  ///\r
+  EFI_IPv4_ADDRESS                GatewayIpAddress;\r
+  ///\r
+  /// The subnet mask\r
+  ///\r
+  EFI_IPv4_ADDRESS                SubnetMask;\r
 } IPv4_DEVICE_PATH;\r
 \r
 ///\r
@@ -570,10 +620,21 @@ typedef struct {
   ///\r
   UINT16                          Protocol;\r
   ///\r
-  /// 0x00 - The Source IP Address was assigned though DHCP.\r
-  /// 0x01 - The Source IP Address is statically bound.\r
+  /// 0x00 - The Local IP Address was manually configured.\r
+  /// 0x01 - The Local IP Address is assigned through IPv6\r
+  /// stateless auto-configuration.\r
+  /// 0x02 - The Local IP Address is assigned through IPv6\r
+  /// stateful configuration.\r
   ///\r
-  BOOLEAN                         StaticIpAddress;\r
+  UINT8                           IpAddressOrigin;\r
+  ///\r
+  /// The prefix length\r
+  ///\r
+  UINT8                           PrefixLength;\r
+  ///\r
+  /// The gateway IP address\r
+  ///\r
+  EFI_IPv6_ADDRESS                GatewayIpAddress;\r
 } IPv6_DEVICE_PATH;\r
 \r
 ///\r
@@ -687,9 +748,12 @@ typedef struct {
   UINT32                          FlowControlMap;\r
 } UART_FLOW_CONTROL_DEVICE_PATH;\r
 \r
-#define DEVICE_PATH_MESSAGING_SAS                 EFI_SAS_DEVICE_PATH_GUID\r
+#define UART_FLOW_CONTROL_HARDWARE         0x00000001\r
+#define UART_FLOW_CONTROL_XON_XOFF         0x00000010\r
+\r
+#define DEVICE_PATH_MESSAGING_SAS          EFI_SAS_DEVICE_PATH_GUID\r
 ///\r
-/// Serial Attached SCSI (SAS) devices.\r
+/// Serial Attached SCSI (SAS) Device Path.\r
 ///\r
 typedef struct {\r
   EFI_DEVICE_PATH_PROTOCOL        Header;\r
@@ -719,6 +783,86 @@ typedef struct {
   UINT16                          RelativeTargetPort;\r
 } SAS_DEVICE_PATH;\r
 \r
+///\r
+/// Serial Attached SCSI (SAS) Ex Device Path SubType\r
+///\r
+#define MSG_SASEX_DP              0x16\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  ///\r
+  /// 8-byte array of the SAS Address for Serial Attached SCSI Target Port.\r
+  ///\r
+  UINT8                           SasAddress[8];\r
+  ///\r
+  /// 8-byte array of the SAS Logical Unit Number.\r
+  ///\r
+  UINT8                           Lun[8];\r
+  ///\r
+  /// More Information about the device and its interconnect.\r
+  ///\r
+  UINT16                          DeviceTopology;\r
+  ///\r
+  /// Relative Target Port (RTP).\r
+  ///\r
+  UINT16                          RelativeTargetPort;\r
+} SASEX_DEVICE_PATH;\r
+\r
+///\r
+/// NvmExpress Namespace Device Path SubType.\r
+///\r
+#define MSG_NVME_NAMESPACE_DP     0x17\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  UINT32                          NamespaceId;\r
+  UINT64                          NamespaceUuid;\r
+} NVME_NAMESPACE_DEVICE_PATH;\r
+\r
+///\r
+/// Uniform Resource Identifiers (URI) Device Path SubType\r
+///\r
+#define MSG_URI_DP                0x18\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  ///\r
+  /// Instance of the URI pursuant to RFC 3986.\r
+  ///\r
+  CHAR8                           Uri[];\r
+} URI_DEVICE_PATH;\r
+\r
+///\r
+/// Universal Flash Storage (UFS) Device Path SubType.\r
+///\r
+#define MSG_UFS_DP                0x19\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  ///\r
+  /// Target ID on the UFS bus (PUN).\r
+  ///\r
+  UINT8                           Pun;\r
+  ///\r
+  /// Logical Unit Number (LUN).\r
+  ///\r
+  UINT8                           Lun;\r
+} UFS_DEVICE_PATH;\r
+\r
+///\r
+/// SD (Secure Digital) Device Path SubType.\r
+///\r
+#define MSG_SD_DP                 0x1A\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  UINT8                           SlotNumber;\r
+} SD_DEVICE_PATH;\r
+\r
+///\r
+/// EMMC (Embedded MMC) Device Path SubType.\r
+///\r
+#define MSG_EMMC_DP                 0x1D\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  UINT8                           SlotNumber;\r
+} EMMC_DEVICE_PATH;\r
+\r
 ///\r
 /// iSCSI Device Path SubType\r
 ///\r
@@ -770,6 +914,39 @@ typedef struct {
   UINT16                          VlanId;\r
 } VLAN_DEVICE_PATH;\r
 \r
+///\r
+/// Bluetooth Device Path SubType.\r
+///\r
+#define MSG_BLUETOOTH_DP     0x1b\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  ///\r
+  /// 48bit Bluetooth device address.\r
+  ///\r
+  BLUETOOTH_ADDRESS               BD_ADDR;\r
+} BLUETOOTH_DEVICE_PATH;\r
+\r
+///\r
+/// Wi-Fi Device Path SubType.\r
+///\r
+#define MSG_WIFI_DP               0x1C\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  ///\r
+  /// Service set identifier. A 32-byte octets string.\r
+  ///\r
+  UINT8                           SSId[32];\r
+} WIFI_DEVICE_PATH;\r
+\r
+///\r
+/// Bluetooth LE Device Path SubType.\r
+///\r
+#define MSG_BLUETOOTH_LE_DP       0x1E\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  BLUETOOTH_LE_ADDRESS            Address;\r
+} BLUETOOTH_LE_DEVICE_PATH;\r
+\r
 //\r
 // Media Device Path\r
 //\r
@@ -892,7 +1069,7 @@ typedef struct {
 } MEDIA_PROTOCOL_DEVICE_PATH;\r
 \r
 ///\r
-/// PIWG Firmware Volume Device Path SubType.\r
+/// PIWG Firmware File SubType.\r
 ///\r
 #define MEDIA_PIWG_FW_FILE_DP     0x06\r
 \r
@@ -938,6 +1115,62 @@ typedef struct {
   UINT64                    EndingOffset;\r
 } MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH;\r
 \r
+///\r
+/// This GUID defines a RAM Disk supporting a raw disk format in volatile memory.\r
+///\r
+#define EFI_VIRTUAL_DISK_GUID               EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE\r
+\r
+extern  EFI_GUID                            gEfiVirtualDiskGuid;\r
+\r
+///\r
+/// This GUID defines a RAM Disk supporting an ISO image in volatile memory.\r
+///\r
+#define EFI_VIRTUAL_CD_GUID                 EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE\r
+\r
+extern  EFI_GUID                            gEfiVirtualCdGuid;\r
+\r
+///\r
+/// This GUID defines a RAM Disk supporting a raw disk format in persistent memory.\r
+///\r
+#define EFI_PERSISTENT_VIRTUAL_DISK_GUID    EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT\r
+\r
+extern  EFI_GUID                            gEfiPersistentVirtualDiskGuid;\r
+\r
+///\r
+/// This GUID defines a RAM Disk supporting an ISO image in persistent memory.\r
+///\r
+#define EFI_PERSISTENT_VIRTUAL_CD_GUID      EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT\r
+\r
+extern  EFI_GUID                            gEfiPersistentVirtualCdGuid;\r
+\r
+///\r
+/// Media ram disk device path.\r
+///\r
+#define MEDIA_RAM_DISK_DP         0x09\r
+\r
+///\r
+/// Used to describe the ram disk device path.\r
+///\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  ///\r
+  /// Starting Memory Address.\r
+  ///\r
+  UINT32                          StartingAddr[2];\r
+  ///\r
+  /// Ending Memory Address.\r
+  ///\r
+  UINT32                          EndingAddr[2];\r
+  ///\r
+  /// GUID that defines the type of the RAM Disk.\r
+  ///\r
+  EFI_GUID                        TypeGuid;\r
+  ///\r
+  /// RAM Diskinstance number, if supported. The default value is zero.\r
+  ///\r
+  UINT16                          Instance;\r
+} MEDIA_RAM_DISK_DEVICE_PATH;\r
+\r
 ///\r
 /// BIOS Boot Specification Device Path.\r
 ///\r
@@ -962,7 +1195,7 @@ typedef struct {
   ///\r
   UINT16                          StatusFlag;\r
   ///\r
-  /// ASCIIZ string that describes the boot device to a user. \r
+  /// Null-terminated ASCII string that describes the boot device to a user.\r
   ///\r
   CHAR8                           String[1];\r
 } BBS_BBS_DEVICE_PATH;\r
@@ -984,78 +1217,116 @@ typedef struct {
 /// Union of all possible Device Paths and pointers to Device Paths.\r
 ///\r
 typedef union {\r
-  EFI_DEVICE_PATH_PROTOCOL             DevPath;\r
-  PCI_DEVICE_PATH                      Pci;\r
-  PCCARD_DEVICE_PATH                   PcCard;\r
-  MEMMAP_DEVICE_PATH                   MemMap;\r
-  VENDOR_DEVICE_PATH                   Vendor;\r
-\r
-  CONTROLLER_DEVICE_PATH               Controller;\r
-  ACPI_HID_DEVICE_PATH                 Acpi;\r
-\r
-  ATAPI_DEVICE_PATH                    Atapi;\r
-  SCSI_DEVICE_PATH                     Scsi;\r
-  ISCSI_DEVICE_PATH                    Iscsi;\r
-  FIBRECHANNEL_DEVICE_PATH             FibreChannel;\r
-\r
-  F1394_DEVICE_PATH                    F1394;\r
-  USB_DEVICE_PATH                      Usb;\r
-  SATA_DEVICE_PATH                     Sata;\r
-  USB_CLASS_DEVICE_PATH                UsbClass;\r
-  I2O_DEVICE_PATH                      I2O;\r
-  MAC_ADDR_DEVICE_PATH                 MacAddr;\r
-  IPv4_DEVICE_PATH                     Ipv4;\r
-  IPv6_DEVICE_PATH                     Ipv6;\r
-  INFINIBAND_DEVICE_PATH               InfiniBand;\r
-  UART_DEVICE_PATH                     Uart;\r
-\r
-  HARDDRIVE_DEVICE_PATH                HardDrive;\r
-  CDROM_DEVICE_PATH                    CD;\r
-\r
-  FILEPATH_DEVICE_PATH                 FilePath;\r
-  MEDIA_PROTOCOL_DEVICE_PATH           MediaProtocol;\r
-  MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH Offset;\r
-\r
-  BBS_BBS_DEVICE_PATH                  Bbs;\r
+  EFI_DEVICE_PATH_PROTOCOL                   DevPath;\r
+  PCI_DEVICE_PATH                            Pci;\r
+  PCCARD_DEVICE_PATH                         PcCard;\r
+  MEMMAP_DEVICE_PATH                         MemMap;\r
+  VENDOR_DEVICE_PATH                         Vendor;\r
+\r
+  CONTROLLER_DEVICE_PATH                     Controller;\r
+  BMC_DEVICE_PATH                            Bmc;\r
+  ACPI_HID_DEVICE_PATH                       Acpi;\r
+  ACPI_EXTENDED_HID_DEVICE_PATH              ExtendedAcpi;\r
+  ACPI_ADR_DEVICE_PATH                       AcpiAdr;\r
+\r
+  ATAPI_DEVICE_PATH                          Atapi;\r
+  SCSI_DEVICE_PATH                           Scsi;\r
+  ISCSI_DEVICE_PATH                          Iscsi;\r
+  FIBRECHANNEL_DEVICE_PATH                   FibreChannel;\r
+  FIBRECHANNELEX_DEVICE_PATH                 FibreChannelEx;\r
+\r
+  F1394_DEVICE_PATH                          F1394;\r
+  USB_DEVICE_PATH                            Usb;\r
+  SATA_DEVICE_PATH                           Sata;\r
+  USB_CLASS_DEVICE_PATH                      UsbClass;\r
+  USB_WWID_DEVICE_PATH                       UsbWwid;\r
+  DEVICE_LOGICAL_UNIT_DEVICE_PATH            LogicUnit;\r
+  I2O_DEVICE_PATH                            I2O;\r
+  MAC_ADDR_DEVICE_PATH                       MacAddr;\r
+  IPv4_DEVICE_PATH                           Ipv4;\r
+  IPv6_DEVICE_PATH                           Ipv6;\r
+  VLAN_DEVICE_PATH                           Vlan;\r
+  INFINIBAND_DEVICE_PATH                     InfiniBand;\r
+  UART_DEVICE_PATH                           Uart;\r
+  UART_FLOW_CONTROL_DEVICE_PATH              UartFlowControl;\r
+  SAS_DEVICE_PATH                            Sas;\r
+  SASEX_DEVICE_PATH                          SasEx;\r
+  NVME_NAMESPACE_DEVICE_PATH                 NvmeNamespace;\r
+  URI_DEVICE_PATH                            Uri;\r
+  BLUETOOTH_DEVICE_PATH                      Bluetooth;\r
+  WIFI_DEVICE_PATH                           WiFi;\r
+  UFS_DEVICE_PATH                            Ufs;\r
+  SD_DEVICE_PATH                             Sd;\r
+  EMMC_DEVICE_PATH                           Emmc;\r
+  HARDDRIVE_DEVICE_PATH                      HardDrive;\r
+  CDROM_DEVICE_PATH                          CD;\r
+\r
+  FILEPATH_DEVICE_PATH                       FilePath;\r
+  MEDIA_PROTOCOL_DEVICE_PATH                 MediaProtocol;\r
+\r
+  MEDIA_FW_VOL_DEVICE_PATH                   FirmwareVolume;\r
+  MEDIA_FW_VOL_FILEPATH_DEVICE_PATH          FirmwareFile;\r
+  MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH    Offset;\r
+  MEDIA_RAM_DISK_DEVICE_PATH                 RamDisk;\r
+  BBS_BBS_DEVICE_PATH                        Bbs;\r
 } EFI_DEV_PATH;\r
 \r
 \r
 \r
 typedef union {\r
-  EFI_DEVICE_PATH_PROTOCOL             *DevPath;\r
-  PCI_DEVICE_PATH                      *Pci;\r
-  PCCARD_DEVICE_PATH                   *PcCard;\r
-  MEMMAP_DEVICE_PATH                   *MemMap;\r
-  VENDOR_DEVICE_PATH                   *Vendor;\r
-\r
-  CONTROLLER_DEVICE_PATH               *Controller;\r
-  ACPI_HID_DEVICE_PATH                 *Acpi;\r
-  ACPI_EXTENDED_HID_DEVICE_PATH        *ExtendedAcpi;\r
-\r
-  ATAPI_DEVICE_PATH                    *Atapi;\r
-  SCSI_DEVICE_PATH                     *Scsi;\r
-  FIBRECHANNEL_DEVICE_PATH             *FibreChannel;\r
-\r
-  F1394_DEVICE_PATH                    *F1394;\r
-  USB_DEVICE_PATH                      *Usb;\r
-  SATA_DEVICE_PATH                     *Sata;\r
-  USB_CLASS_DEVICE_PATH                *UsbClass;\r
-  I2O_DEVICE_PATH                      *I2O;\r
-  MAC_ADDR_DEVICE_PATH                 *MacAddr;\r
-  IPv4_DEVICE_PATH                     *Ipv4;\r
-  IPv6_DEVICE_PATH                     *Ipv6;\r
-  INFINIBAND_DEVICE_PATH               *InfiniBand;\r
-  UART_DEVICE_PATH                     *Uart;\r
-\r
-  HARDDRIVE_DEVICE_PATH                *HardDrive;\r
-  CDROM_DEVICE_PATH                    *CD;\r
-\r
-  FILEPATH_DEVICE_PATH                 *FilePath;\r
-  MEDIA_PROTOCOL_DEVICE_PATH           *MediaProtocol;\r
-  MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH *Offset;\r
-\r
-  BBS_BBS_DEVICE_PATH                  *Bbs;\r
-  UINT8                                *Raw;\r
+  EFI_DEVICE_PATH_PROTOCOL                   *DevPath;\r
+  PCI_DEVICE_PATH                            *Pci;\r
+  PCCARD_DEVICE_PATH                         *PcCard;\r
+  MEMMAP_DEVICE_PATH                         *MemMap;\r
+  VENDOR_DEVICE_PATH                         *Vendor;\r
+\r
+  CONTROLLER_DEVICE_PATH                     *Controller;\r
+  BMC_DEVICE_PATH                            *Bmc;\r
+  ACPI_HID_DEVICE_PATH                       *Acpi;\r
+  ACPI_EXTENDED_HID_DEVICE_PATH              *ExtendedAcpi;\r
+  ACPI_ADR_DEVICE_PATH                       *AcpiAdr;\r
+\r
+  ATAPI_DEVICE_PATH                          *Atapi;\r
+  SCSI_DEVICE_PATH                           *Scsi;\r
+  ISCSI_DEVICE_PATH                          *Iscsi;\r
+  FIBRECHANNEL_DEVICE_PATH                   *FibreChannel;\r
+  FIBRECHANNELEX_DEVICE_PATH                 *FibreChannelEx;\r
+\r
+  F1394_DEVICE_PATH                          *F1394;\r
+  USB_DEVICE_PATH                            *Usb;\r
+  SATA_DEVICE_PATH                           *Sata;\r
+  USB_CLASS_DEVICE_PATH                      *UsbClass;\r
+  USB_WWID_DEVICE_PATH                       *UsbWwid;\r
+  DEVICE_LOGICAL_UNIT_DEVICE_PATH            *LogicUnit;\r
+  I2O_DEVICE_PATH                            *I2O;\r
+  MAC_ADDR_DEVICE_PATH                       *MacAddr;\r
+  IPv4_DEVICE_PATH                           *Ipv4;\r
+  IPv6_DEVICE_PATH                           *Ipv6;\r
+  VLAN_DEVICE_PATH                           *Vlan;\r
+  INFINIBAND_DEVICE_PATH                     *InfiniBand;\r
+  UART_DEVICE_PATH                           *Uart;\r
+  UART_FLOW_CONTROL_DEVICE_PATH              *UartFlowControl;\r
+  SAS_DEVICE_PATH                            *Sas;\r
+  SASEX_DEVICE_PATH                          *SasEx;\r
+  NVME_NAMESPACE_DEVICE_PATH                 *NvmeNamespace;\r
+  URI_DEVICE_PATH                            *Uri;\r
+  BLUETOOTH_DEVICE_PATH                      *Bluetooth;\r
+  WIFI_DEVICE_PATH                           *WiFi;\r
+  UFS_DEVICE_PATH                            *Ufs;\r
+  SD_DEVICE_PATH                             *Sd;\r
+  EMMC_DEVICE_PATH                           *Emmc;\r
+  HARDDRIVE_DEVICE_PATH                      *HardDrive;\r
+  CDROM_DEVICE_PATH                          *CD;\r
+\r
+  FILEPATH_DEVICE_PATH                       *FilePath;\r
+  MEDIA_PROTOCOL_DEVICE_PATH                 *MediaProtocol;\r
+\r
+  MEDIA_FW_VOL_DEVICE_PATH                   *FirmwareVolume;\r
+  MEDIA_FW_VOL_FILEPATH_DEVICE_PATH          *FirmwareFile;\r
+  MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH    *Offset;\r
+  MEDIA_RAM_DISK_DEVICE_PATH                 *RamDisk;\r
+  BBS_BBS_DEVICE_PATH                        *Bbs;\r
+  UINT8                                      *Raw;\r
 } EFI_DEV_PATH_PTR;\r
 \r
 #pragma pack()\r