]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/UefiDevicePathLib/DevicePathToText.c
MdePkg: Refine the device path text format for Bluetooth to follow spec.
[mirror_edk2.git] / MdePkg / Library / UefiDevicePathLib / DevicePathToText.c
index e82a70484c09e7a09cf5753a9456bd00c93b3827..627308c340be2867bdd373e3ab343cf3cc693a8d 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
   DevicePathToText protocol as defined in the UEFI 2.0 specification.\r
 \r
+  (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
 Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
@@ -306,6 +307,38 @@ DevPathToTextController (
     );\r
 }\r
 \r
+/**\r
+  Converts a BMC 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
+DevPathToTextBmc (\r
+  IN OUT POOL_PRINT  *Str,\r
+  IN VOID            *DevPath,\r
+  IN BOOLEAN         DisplayOnly,\r
+  IN BOOLEAN         AllowShortcuts\r
+  )\r
+{\r
+  BMC_DEVICE_PATH    *Bmc;\r
+\r
+  Bmc = DevPath;\r
+  UefiDevicePathLibCatPrint (\r
+    Str,\r
+    L"Bmc(0x%x,0x%lx)",\r
+    Bmc->InterfaceType,\r
+    ReadUnaligned64 ((UINT64 *) (&Bmc->BaseAddress))\r
+    );\r
+}\r
+\r
 /**\r
   Converts a ACPI device path structure to its string representative.\r
 \r
@@ -1551,7 +1584,7 @@ DevPathToTextBluetooth (
   Bluetooth = DevPath;\r
   UefiDevicePathLibCatPrint (\r
     Str,\r
-    L"Bluetooth(%02x:%02x:%02x:%02x:%02x:%02x)",\r
+    L"Bluetooth(%02x%02x%02x%02x%02x%02x)",\r
     Bluetooth->BD_ADDR.Address[5],\r
     Bluetooth->BD_ADDR.Address[4],\r
     Bluetooth->BD_ADDR.Address[3],\r
@@ -1886,40 +1919,40 @@ DevPathToTextRamDisk (
     UefiDevicePathLibCatPrint (\r
       Str,\r
       L"VirtualDisk(0x%lx,0x%lx,%d)",\r
-      RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
-      RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
       RamDisk->Instance\r
       );\r
   } else if (CompareGuid (&RamDisk->TypeGuid, &gEfiVirtualCdGuid)) {\r
     UefiDevicePathLibCatPrint (\r
       Str,\r
       L"VirtualCD(0x%lx,0x%lx,%d)",\r
-      RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
-      RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
       RamDisk->Instance\r
       );\r
   } else if (CompareGuid (&RamDisk->TypeGuid, &gEfiPersistentVirtualDiskGuid)) {\r
     UefiDevicePathLibCatPrint (\r
       Str,\r
       L"PersistentVirtualDisk(0x%lx,0x%lx,%d)",\r
-      RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
-      RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
       RamDisk->Instance\r
       );\r
   } else if (CompareGuid (&RamDisk->TypeGuid, &gEfiPersistentVirtualCdGuid)) {\r
     UefiDevicePathLibCatPrint (\r
       Str,\r
       L"PersistentVirtualCD(0x%lx,0x%lx,%d)",\r
-      RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
-      RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
       RamDisk->Instance\r
       );\r
   } else {\r
     UefiDevicePathLibCatPrint (\r
       Str,\r
       L"RamDisk(0x%lx,0x%lx,%d,%g)",\r
-      RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
-      RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0],\r
+      LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0],\r
       RamDisk->Instance,\r
       &RamDisk->TypeGuid\r
       );\r
@@ -2089,6 +2122,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED const DEVICE_PATH_TO_TEXT_TABLE mUefiDevicePathLib
   {HARDWARE_DEVICE_PATH,  HW_MEMMAP_DP,                     DevPathToTextMemMap         },\r
   {HARDWARE_DEVICE_PATH,  HW_VENDOR_DP,                     DevPathToTextVendor         },\r
   {HARDWARE_DEVICE_PATH,  HW_CONTROLLER_DP,                 DevPathToTextController     },\r
+  {HARDWARE_DEVICE_PATH,  HW_BMC_DP,                        DevPathToTextBmc            },\r
   {ACPI_DEVICE_PATH,      ACPI_DP,                          DevPathToTextAcpi           },\r
   {ACPI_DEVICE_PATH,      ACPI_EXTENDED_DP,                 DevPathToTextAcpiEx         },\r
   {ACPI_DEVICE_PATH,      ACPI_ADR_DP,                      DevPathToTextAcpiAdr        },\r