]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Library/Dxe/EfiDriverLib/Perf.c
Maintainers.txt: Remove EdkCompatibilityPkg information
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / Dxe / EfiDriverLib / Perf.c
index 55d1a1d14e4083fa8b1a99f9c04498aef699dfbe..b5f9a4ae5d85f90ef109651316ed71873d73a3f7 100644 (file)
@@ -1,7 +1,7 @@
 /*++\r
 \r
-Copyright (c) 2004 - 2005, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2004 - 2010, 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
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
@@ -25,7 +25,7 @@ Abstract:
 #include EFI_PROTOCOL_DEFINITION (LoadedImage)\r
 #include EFI_GUID_DEFINITION (Hob)\r
 #include EFI_GUID_DEFINITION (PeiPerformanceHob)\r
-#include "linkedlist.h"\r
+#include "LinkedList.h"\r
 #include "EfiHobLib.h"\r
 #include "EfiImage.h"\r
 \r
@@ -98,7 +98,7 @@ Returns:
   UINTN EndIndex;\r
 \r
   if (PdbFileName == NULL) {\r
-    EfiAsciiStrCpy (GaugeString, " ");\r
+    EfiAsciiStrCpy (GaugeString, (CHAR8 *)" ");\r
   } else {\r
     StartIndex = 0;\r
     for (EndIndex = 0; PdbFileName[EndIndex] != 0; EndIndex++)\r
@@ -229,7 +229,7 @@ GetNameFromHandle (
   CHAR8                       *PdbFileName;\r
   EFI_DRIVER_BINDING_PROTOCOL *DriverBinding;\r
 \r
-  EfiAsciiStrCpy (GaugeString, " ");\r
+  EfiAsciiStrCpy (GaugeString, (CHAR8 *)" ");\r
 \r
   //\r
   // Get handle name from image protocol\r
@@ -515,12 +515,10 @@ Returns:
 \r
 --*/\r
 {\r
-  EFI_PERFORMANCE_INSTANCE  *PerfInstance;\r
   EFI_PERF_DATA_LIST        *Node;\r
   UINT64                    TimerValue;\r
 \r
   TimerValue    = 0;\r
-  PerfInstance  = EFI_PERFORMANCE_FROM_THIS (This);\r
 \r
   Node          = GetDataNode (Handle, Token, Host, NULL, NULL);\r
   if (!Node) {\r
@@ -573,11 +571,8 @@ Returns:
 \r
 --*/\r
 {\r
-  EFI_PERFORMANCE_INSTANCE  *PerfInstance;\r
   EFI_PERF_DATA_LIST        *Node;\r
 \r
-  PerfInstance  = EFI_PERFORMANCE_FROM_THIS (This);\r
-\r
   Node          = GetDataNode (Handle, Token, Host, NULL, PrevGauge);\r
   if (Node != NULL) {\r
     return &(Node->GaugeData);\r
@@ -590,6 +585,7 @@ Returns:
 // Driver entry point\r
 //\r
 EFI_STATUS\r
+EFIAPI\r
 InitializePerformanceInfrastructure (\r
   IN EFI_HANDLE           ImageHandle,\r
   IN EFI_SYSTEM_TABLE     *SystemTable,\r
@@ -649,6 +645,7 @@ Returns:
 \r
 \r
 EFI_STATUS\r
+EFIAPI\r
 StartMeasure (\r
   EFI_HANDLE          Handle,\r
   IN UINT16           *Token,\r
@@ -688,6 +685,7 @@ Returns:
 \r
 \r
 EFI_STATUS\r
+EFIAPI\r
 EndMeasure (\r
   EFI_HANDLE          Handle,\r
   IN UINT16           *Token,\r
@@ -726,6 +724,7 @@ Returns:
 \r
 \r
 EFI_STATUS\r
+EFIAPI\r
 UpdateMeasure (\r
   EFI_HANDLE         Handle,\r
   IN UINT16          *Token,\r
@@ -825,6 +824,11 @@ Returns:
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
+  //\r
+  // Initialize 'LogHob' to NULL before usage.\r
+  //\r
+  LogHob = NULL;\r
+\r
   if (Ticker != 0) {\r
     TimerValue = Ticker;\r
   } else {\r
@@ -837,7 +841,10 @@ Returns:
   EfiLibGetSystemConfigurationTable (&gEfiHobListGuid, &HobList);\r
   do {\r
     Status = GetNextGuidHob (&HobList, &gEfiPeiPerformanceHobGuid, (VOID **) &LogHob, NULL);\r
-    if (EFI_ERROR (Status)) {\r
+    if (EFI_ERROR (Status) || (LogHob == NULL)) {\r
+      //\r
+      // Failed to get HOB for ProtocolGuid.\r
+      //\r
       break;\r
     }\r
 \r