]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/DevicePath.h
MdePkg: Add URI_DEVICE_PATH definition.
[mirror_edk2.git] / MdePkg / Include / Protocol / DevicePath.h
index 7a65f5e33a5e2837d1ab50109490cea3d7773908..de24db18ef3bb51aee694eec2b5019e1e6849759 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 - 2011, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2015, 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,7 +20,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define __EFI_DEVICE_PATH_PROTOCOL_H__\r
 \r
 #include <Guid/PcAnsi.h>\r
-\r
+#include <IndustryStandard/Bluetooth.h>\r
 ///\r
 /// Device Path protocol.\r
 ///\r
@@ -273,14 +273,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 +346,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
@@ -541,6 +561,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 +598,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
@@ -722,6 +761,68 @@ 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
 /// iSCSI Device Path SubType\r
 ///\r
@@ -773,6 +874,18 @@ 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
 // Media Device Path\r
 //\r
@@ -1002,6 +1115,7 @@ typedef union {
   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
@@ -1018,6 +1132,11 @@ typedef union {
   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
+  UFS_DEVICE_PATH                            Ufs;\r
   HARDDRIVE_DEVICE_PATH                      HardDrive;\r
   CDROM_DEVICE_PATH                          CD;\r
 \r
@@ -1049,6 +1168,7 @@ typedef union {
   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
@@ -1065,6 +1185,11 @@ typedef union {
   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
+  UFS_DEVICE_PATH                            *Ufs;\r
   HARDDRIVE_DEVICE_PATH                      *HardDrive;\r
   CDROM_DEVICE_PATH                          *CD;\r
 \r