]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/DevicePathDxe/DevicePathToText.c
Update the "ConErr" related variable name to the new one "ErrOut".
[mirror_edk2.git] / MdeModulePkg / Universal / DevicePathDxe / DevicePathToText.c
index d7cff207fe60181dd0ff12b5a04d20227c9c015d..1f90f64204a79b370aad39734307686a1934a93b 100644 (file)
@@ -653,6 +653,66 @@ DevPathToTextFibreEx (
   CatPrint (Str, L")");\r
 }\r
 \r
+/**\r
+  Converts a Sas Ex device path structure to its string representative.\r
+\r
+  @param Str             The string representative of input device.\r
+  @param DevPath         The input device path structure.\r
+  @param DisplayOnly     If DisplayOnly is TRUE, then the shorter text representation\r
+                         of the display node is used, where applicable. If DisplayOnly\r
+                         is FALSE, then the longer text representation of the display node\r
+                         is used.\r
+  @param AllowShortcuts  If AllowShortcuts is TRUE, then the shortcut forms of text\r
+                         representation for a device node can be used, where applicable.\r
+\r
+**/\r
+VOID\r
+DevPathToTextSasEx (\r
+  IN OUT POOL_PRINT  *Str,\r
+  IN VOID            *DevPath,\r
+  IN BOOLEAN         DisplayOnly,\r
+  IN BOOLEAN         AllowShortcuts\r
+  )\r
+{\r
+  SASEX_DEVICE_PATH  *SasEx;\r
+  UINTN              Index;\r
+\r
+  SasEx = DevPath;\r
+  CatPrint (Str, L"SasEx(0x");\r
+\r
+  for (Index = 0; Index < sizeof (SasEx->SasAddress) / sizeof (SasEx->SasAddress[0]); Index++) {\r
+    CatPrint (Str, L"%02x", SasEx->SasAddress[Index]);\r
+  }\r
+  CatPrint (Str, L",0x");\r
+  for (Index = 0; Index < sizeof (SasEx->Lun) / sizeof (SasEx->Lun[0]); Index++) {\r
+    CatPrint (Str, L"%02x", SasEx->Lun[Index]);\r
+  }\r
+  CatPrint (Str, L",0x%x,", SasEx->RelativeTargetPort);\r
+\r
+  if ((SasEx->DeviceTopology & 0x0f) == 0) {\r
+    CatPrint (Str, L"NoTopology,0,0,0");\r
+  } else if (((SasEx->DeviceTopology & 0x0f) == 1) || ((SasEx->DeviceTopology & 0x0f) == 2)) {\r
+    CatPrint (\r
+      Str,\r
+      L"%s,%s,%s,",\r
+      ((SasEx->DeviceTopology & (0x1 << 4)) != 0) ? L"SATA" : L"SAS",\r
+      ((SasEx->DeviceTopology & (0x1 << 5)) != 0) ? L"External" : L"Internal",\r
+      ((SasEx->DeviceTopology & (0x1 << 6)) != 0) ? L"Expanded" : L"Direct"\r
+      );\r
+    if ((SasEx->DeviceTopology & 0x0f) == 1) {\r
+      CatPrint (Str, L"0");\r
+    } else {\r
+      CatPrint (Str, L"0x%x", (SasEx->DeviceTopology >> 8) & 0xff);\r
+    }\r
+  } else {\r
+    CatPrint (Str, L"0,0,0,0");\r
+  }\r
+\r
+  CatPrint (Str, L")");\r
+  return ;\r
+\r
+}\r
+\r
 /**\r
   Converts a 1394 device path structure to its string representative.\r
 \r
@@ -1205,10 +1265,21 @@ DevPathToTextIPv6 (
     IPDevPath->Protocol\r
     );\r
 \r
+  switch (IPDevPath->IpAddressOrigin) {\r
+    case 0:\r
+      CatPrint (Str, L",Static");\r
+      break;\r
+    case 1:\r
+      CatPrint (Str, L",StatelessAutoConfigure");\r
+      break;\r
+    default:\r
+      CatPrint (Str, L",StatefulAutoConfigure");\r
+      break;\r
+  }\r
+\r
   CatPrint (\r
     Str,\r
-    L",%s,%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x)",\r
-    IPDevPath->StaticIpAddress ? L"Static" : L"DHCP",\r
+    L",%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x",\r
     IPDevPath->LocalIpAddress.Addr[0],\r
     IPDevPath->LocalIpAddress.Addr[1],\r
     IPDevPath->LocalIpAddress.Addr[2],\r
@@ -1226,6 +1297,31 @@ DevPathToTextIPv6 (
     IPDevPath->LocalIpAddress.Addr[14],\r
     IPDevPath->LocalIpAddress.Addr[15]\r
     );\r
+\r
+  if (DevicePathNodeLength (IPDevPath) == sizeof (IPv6_DEVICE_PATH)) {\r
+    CatPrint (\r
+      Str,\r
+      L",0x%x,%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x",\r
+      IPDevPath->PrefixLength,\r
+      IPDevPath->GatewayIpAddress.Addr[0],\r
+      IPDevPath->GatewayIpAddress.Addr[1],\r
+      IPDevPath->GatewayIpAddress.Addr[2],\r
+      IPDevPath->GatewayIpAddress.Addr[3],\r
+      IPDevPath->GatewayIpAddress.Addr[4],\r
+      IPDevPath->GatewayIpAddress.Addr[5],\r
+      IPDevPath->GatewayIpAddress.Addr[6],\r
+      IPDevPath->GatewayIpAddress.Addr[7],\r
+      IPDevPath->GatewayIpAddress.Addr[8],\r
+      IPDevPath->GatewayIpAddress.Addr[9],\r
+      IPDevPath->GatewayIpAddress.Addr[10],\r
+      IPDevPath->GatewayIpAddress.Addr[11],\r
+      IPDevPath->GatewayIpAddress.Addr[12],\r
+      IPDevPath->GatewayIpAddress.Addr[13],\r
+      IPDevPath->GatewayIpAddress.Addr[14],\r
+      IPDevPath->GatewayIpAddress.Addr[15]\r
+      );\r
+  }\r
+  CatPrint (Str, L")");\r
 }\r
 \r
 /**\r
@@ -1790,6 +1886,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED const DEVICE_PATH_TO_TEXT_TABLE DevPathToTextTable
   {MESSAGING_DEVICE_PATH, MSG_SCSI_DP, DevPathToTextScsi},\r
   {MESSAGING_DEVICE_PATH, MSG_FIBRECHANNEL_DP, DevPathToTextFibre},\r
   {MESSAGING_DEVICE_PATH, MSG_FIBRECHANNELEX_DP, DevPathToTextFibreEx},\r
+  {MESSAGING_DEVICE_PATH, MSG_SASEX_DP, DevPathToTextSasEx},\r
   {MESSAGING_DEVICE_PATH, MSG_1394_DP, DevPathToText1394},\r
   {MESSAGING_DEVICE_PATH, MSG_USB_DP, DevPathToTextUsb},\r
   {MESSAGING_DEVICE_PATH, MSG_USB_WWID_DP, DevPathToTextUsbWWID},\r