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
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
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
{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