]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/DevicePathDxe/DevicePathToText.c
Fix the issue that the protocol field in IPv4 and IPv6 is does not reflect the RFC170...
[mirror_edk2.git] / MdeModulePkg / Universal / DevicePathDxe / DevicePathToText.c
index 43b0e0b8f64cfc40d0b5f592afff3d38a914b817..82789c1d514fa0447db2c3e18d5372271f7c68ef 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   DevicePathToText protocol as defined in the UEFI 2.0 specification.\r
 \r
-Copyright (c) 2006 - 2009, Intel Corporation. <BR>\r
+Copyright (c) 2006 - 2010, Intel Corporation. <BR>\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -996,6 +996,28 @@ DevPathToTextMacAddr (
   CatPrint (Str, L",0x%x)", (UINTN) MacDevPath->IfType);\r
 }\r
 \r
+/**\r
+  Converts network protocol string to its text representation.\r
+\r
+  @param Str             The string representative of input device.\r
+  @param Protocol        The network protocol ID.\r
+\r
+**/\r
+VOID\r
+CatNetworkProtocol (\r
+  IN OUT POOL_PRINT  *Str,\r
+  IN UINT16          Protocol\r
+  )\r
+{\r
+  if (Protocol == RFC_1700_TCP_PROTOCOL) {\r
+    CatPrint (Str, L"TCP");\r
+  } else if (Protocol == RFC_1700_UDP_PROTOCOL) {\r
+    CatPrint (Str, L"UDP");\r
+  } else {\r
+    CatPrint (Str, L"0x%x", Protocol);\r
+  }\r
+}\r
+\r
 /**\r
   Converts a IPv4 device path structure to its string representative.\r
 \r
@@ -1034,12 +1056,21 @@ DevPathToTextIPv4 (
 \r
   CatPrint (\r
     Str,\r
-    L"IPv4(%d.%d.%d.%d,%s,%s,%d.%d.%d.%d)",\r
+    L"IPv4(%d.%d.%d.%d,",\r
     (UINTN) IPDevPath->RemoteIpAddress.Addr[0],\r
     (UINTN) IPDevPath->RemoteIpAddress.Addr[1],\r
     (UINTN) IPDevPath->RemoteIpAddress.Addr[2],\r
-    (UINTN) IPDevPath->RemoteIpAddress.Addr[3],\r
-    (IPDevPath->Protocol == 1) ? L"TCP" : L"UDP",\r
+    (UINTN) IPDevPath->RemoteIpAddress.Addr[3]\r
+    );\r
+\r
+  CatNetworkProtocol (\r
+    Str,\r
+    IPDevPath->Protocol\r
+    );\r
+\r
+  CatPrint (\r
+    Str,\r
+    L",%s,%d.%d.%d.%d)",\r
     IPDevPath->StaticIpAddress ? L"Static" : L"DHCP",\r
     (UINTN) IPDevPath->LocalIpAddress.Addr[0],\r
     (UINTN) IPDevPath->LocalIpAddress.Addr[1],\r
@@ -1098,7 +1129,7 @@ DevPathToTextIPv6 (
 \r
   CatPrint (\r
     Str,\r
-    L"IPv6(%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x,%s,%s,%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x)",\r
+    L"IPv6(%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x,",\r
     (UINTN) IPDevPath->RemoteIpAddress.Addr[0],\r
     (UINTN) IPDevPath->RemoteIpAddress.Addr[1],\r
     (UINTN) IPDevPath->RemoteIpAddress.Addr[2],\r
@@ -1114,8 +1145,17 @@ DevPathToTextIPv6 (
     (UINTN) IPDevPath->RemoteIpAddress.Addr[12],\r
     (UINTN) IPDevPath->RemoteIpAddress.Addr[13],\r
     (UINTN) IPDevPath->RemoteIpAddress.Addr[14],\r
-    (UINTN) IPDevPath->RemoteIpAddress.Addr[15],\r
-    (IPDevPath->Protocol == 1) ? L"TCP" : L"UDP",\r
+    (UINTN) IPDevPath->RemoteIpAddress.Addr[15]\r
+    );\r
+    \r
+  CatNetworkProtocol (\r
+    Str,\r
+    IPDevPath->Protocol\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
     (UINTN) IPDevPath->LocalIpAddress.Addr[0],\r
     (UINTN) IPDevPath->LocalIpAddress.Addr[1],\r
@@ -1562,7 +1602,7 @@ DevPathRelativeOffsetRange (
   Offset = DevPath;\r
   CatPrint (\r
     Str,\r
-    L"Offset(%lx,%lx)",\r
+    L"Offset(0x%lx,0x%lx)",\r
     Offset->StartingOffset,\r
     Offset->EndingOffset\r
     );\r