]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Library / PeiPerformanceLib / PeiPerformanceLib.c
index ac033d4a6a66a3f5ca1268472536b8586699b30b..93edc010140abe4d8da7fcc7a8cc7ac379c4c3c8 100644 (file)
@@ -13,7 +13,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 \r
 **/\r
 \r
-\r
 #include <PiPei.h>\r
 \r
 #include <Guid/ExtendedFirmwarePerformance.h>\r
@@ -27,9 +26,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #include <Library/PcdLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
 \r
-#define  STRING_SIZE            (FPDT_STRING_EVENT_RECORD_NAME_LENGTH * sizeof (CHAR8))\r
-#define  PEI_MAX_RECORD_SIZE    (sizeof (FPDT_DUAL_GUID_STRING_EVENT_RECORD) + STRING_SIZE)\r
-\r
+#define  STRING_SIZE          (FPDT_STRING_EVENT_RECORD_NAME_LENGTH * sizeof (CHAR8))\r
+#define  PEI_MAX_RECORD_SIZE  (sizeof (FPDT_DUAL_GUID_STRING_EVENT_RECORD) + STRING_SIZE)\r
 \r
 /**\r
   Return the pointer to the FPDT record in the allocated memory.\r
@@ -46,38 +44,40 @@ GetFpdtRecordPtr (
   IN     UINT8                     RecordSize,\r
   IN OUT FPDT_RECORD_PTR           *FpdtRecordPtr,\r
   IN OUT FPDT_PEI_EXT_PERF_HEADER  **PeiPerformanceLogHeader\r
-)\r
+  )\r
 {\r
-  UINT16                                PeiPerformanceLogEntries;\r
-  UINTN                                 PeiPerformanceSize;\r
-  UINT8                                 *PeiFirmwarePerformance;\r
-  EFI_HOB_GUID_TYPE                     *GuidHob;\r
+  UINT16             PeiPerformanceLogEntries;\r
+  UINTN              PeiPerformanceSize;\r
+  UINT8              *PeiFirmwarePerformance;\r
+  EFI_HOB_GUID_TYPE  *GuidHob;\r
 \r
   //\r
   // Get the number of PeiPerformanceLogEntries form PCD.\r
   //\r
-  PeiPerformanceLogEntries = (UINT16) (PcdGet16 (PcdMaxPeiPerformanceLogEntries16) != 0 ?\r
-                                       PcdGet16 (PcdMaxPeiPerformanceLogEntries16) :\r
-                                       PcdGet8 (PcdMaxPeiPerformanceLogEntries));\r
+  PeiPerformanceLogEntries = (UINT16)(PcdGet16 (PcdMaxPeiPerformanceLogEntries16) != 0 ?\r
+                                      PcdGet16 (PcdMaxPeiPerformanceLogEntries16) :\r
+                                      PcdGet8 (PcdMaxPeiPerformanceLogEntries));\r
 \r
   //\r
   // Create GUID HOB Data.\r
   //\r
-  GuidHob = GetFirstGuidHob (&gEdkiiFpdtExtendedFirmwarePerformanceGuid);\r
+  GuidHob                = GetFirstGuidHob (&gEdkiiFpdtExtendedFirmwarePerformanceGuid);\r
   PeiFirmwarePerformance = NULL;\r
   while (GuidHob != NULL) {\r
     //\r
     // PEI Performance HOB was found, then return the existing one.\r
     //\r
-    PeiFirmwarePerformance  = (UINT8*)GET_GUID_HOB_DATA (GuidHob);\r
+    PeiFirmwarePerformance   = (UINT8 *)GET_GUID_HOB_DATA (GuidHob);\r
     *PeiPerformanceLogHeader = (FPDT_PEI_EXT_PERF_HEADER *)PeiFirmwarePerformance;\r
-    if (!(*PeiPerformanceLogHeader)->HobIsFull && (*PeiPerformanceLogHeader)->SizeOfAllEntries + RecordSize > (PeiPerformanceLogEntries * PEI_MAX_RECORD_SIZE)) {\r
+    if (!(*PeiPerformanceLogHeader)->HobIsFull && ((*PeiPerformanceLogHeader)->SizeOfAllEntries + RecordSize > (PeiPerformanceLogEntries * PEI_MAX_RECORD_SIZE))) {\r
       (*PeiPerformanceLogHeader)->HobIsFull = TRUE;\r
     }\r
-    if (!(*PeiPerformanceLogHeader)->HobIsFull && (*PeiPerformanceLogHeader)->SizeOfAllEntries + RecordSize <= (PeiPerformanceLogEntries * PEI_MAX_RECORD_SIZE)) {\r
+\r
+    if (!(*PeiPerformanceLogHeader)->HobIsFull && ((*PeiPerformanceLogHeader)->SizeOfAllEntries + RecordSize <= (PeiPerformanceLogEntries * PEI_MAX_RECORD_SIZE))) {\r
       FpdtRecordPtr->RecordHeader = (EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER *)(PeiFirmwarePerformance + sizeof (FPDT_PEI_EXT_PERF_HEADER) + (*PeiPerformanceLogHeader)->SizeOfAllEntries);\r
       break;\r
     }\r
+\r
     //\r
     // Previous HOB is used, then find next one.\r
     //\r
@@ -88,12 +88,12 @@ GetFpdtRecordPtr (
     //\r
     // PEI Performance HOB was not found, then build one.\r
     //\r
-    PeiPerformanceSize      = sizeof (FPDT_PEI_EXT_PERF_HEADER) +\r
-                              PEI_MAX_RECORD_SIZE * PeiPerformanceLogEntries;\r
-    PeiFirmwarePerformance  = (UINT8*)BuildGuidHob (&gEdkiiFpdtExtendedFirmwarePerformanceGuid, PeiPerformanceSize);\r
+    PeiPerformanceSize = sizeof (FPDT_PEI_EXT_PERF_HEADER) +\r
+                         PEI_MAX_RECORD_SIZE * PeiPerformanceLogEntries;\r
+    PeiFirmwarePerformance = (UINT8 *)BuildGuidHob (&gEdkiiFpdtExtendedFirmwarePerformanceGuid, PeiPerformanceSize);\r
     if (PeiFirmwarePerformance != NULL) {\r
       ZeroMem (PeiFirmwarePerformance, PeiPerformanceSize);\r
-      (*PeiPerformanceLogHeader) = (FPDT_PEI_EXT_PERF_HEADER *)PeiFirmwarePerformance;\r
+      (*PeiPerformanceLogHeader)  = (FPDT_PEI_EXT_PERF_HEADER *)PeiFirmwarePerformance;\r
       FpdtRecordPtr->RecordHeader = (EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER *)(PeiFirmwarePerformance + sizeof (FPDT_PEI_EXT_PERF_HEADER));\r
     }\r
   }\r
@@ -126,16 +126,17 @@ IsKnownTokens (
     return FALSE;\r
   }\r
 \r
-  if (AsciiStrCmp (Token, SEC_TOK) == 0 ||\r
-      AsciiStrCmp (Token, PEI_TOK) == 0 ||\r
-      AsciiStrCmp (Token, DXE_TOK) == 0 ||\r
-      AsciiStrCmp (Token, BDS_TOK) == 0 ||\r
-      AsciiStrCmp (Token, DRIVERBINDING_START_TOK) == 0 ||\r
-      AsciiStrCmp (Token, DRIVERBINDING_SUPPORT_TOK) == 0 ||\r
-      AsciiStrCmp (Token, DRIVERBINDING_STOP_TOK) == 0 ||\r
-      AsciiStrCmp (Token, LOAD_IMAGE_TOK) == 0 ||\r
-      AsciiStrCmp (Token, START_IMAGE_TOK) == 0 ||\r
-      AsciiStrCmp (Token, PEIM_TOK) == 0) {\r
+  if ((AsciiStrCmp (Token, SEC_TOK) == 0) ||\r
+      (AsciiStrCmp (Token, PEI_TOK) == 0) ||\r
+      (AsciiStrCmp (Token, DXE_TOK) == 0) ||\r
+      (AsciiStrCmp (Token, BDS_TOK) == 0) ||\r
+      (AsciiStrCmp (Token, DRIVERBINDING_START_TOK) == 0) ||\r
+      (AsciiStrCmp (Token, DRIVERBINDING_SUPPORT_TOK) == 0) ||\r
+      (AsciiStrCmp (Token, DRIVERBINDING_STOP_TOK) == 0) ||\r
+      (AsciiStrCmp (Token, LOAD_IMAGE_TOK) == 0) ||\r
+      (AsciiStrCmp (Token, START_IMAGE_TOK) == 0) ||\r
+      (AsciiStrCmp (Token, PEIM_TOK) == 0))\r
+  {\r
     return TRUE;\r
   } else {\r
     return FALSE;\r
@@ -153,19 +154,20 @@ Check whether the ID is a known one which map to the known Token.
 **/\r
 BOOLEAN\r
 IsKnownID (\r
-  IN UINT32       Identifier\r
+  IN UINT32  Identifier\r
   )\r
 {\r
-  if (Identifier == MODULE_START_ID ||\r
-      Identifier == MODULE_END_ID ||\r
-      Identifier == MODULE_LOADIMAGE_START_ID ||\r
-      Identifier == MODULE_LOADIMAGE_END_ID ||\r
-      Identifier == MODULE_DB_START_ID ||\r
-      Identifier == MODULE_DB_END_ID ||\r
-      Identifier == MODULE_DB_SUPPORT_START_ID ||\r
-      Identifier == MODULE_DB_SUPPORT_END_ID ||\r
-      Identifier == MODULE_DB_STOP_START_ID ||\r
-      Identifier == MODULE_DB_STOP_END_ID) {\r
+  if ((Identifier == MODULE_START_ID) ||\r
+      (Identifier == MODULE_END_ID) ||\r
+      (Identifier == MODULE_LOADIMAGE_START_ID) ||\r
+      (Identifier == MODULE_LOADIMAGE_END_ID) ||\r
+      (Identifier == MODULE_DB_START_ID) ||\r
+      (Identifier == MODULE_DB_END_ID) ||\r
+      (Identifier == MODULE_DB_SUPPORT_START_ID) ||\r
+      (Identifier == MODULE_DB_SUPPORT_END_ID) ||\r
+      (Identifier == MODULE_DB_STOP_START_ID) ||\r
+      (Identifier == MODULE_DB_STOP_END_ID))\r
+  {\r
     return TRUE;\r
   } else {\r
     return FALSE;\r
@@ -188,10 +190,10 @@ IsKnownID (
 **/\r
 EFI_STATUS\r
 GetFpdtRecordId (\r
-  IN BOOLEAN                 Attribute,\r
-  IN CONST VOID              *Handle,\r
-  IN CONST CHAR8             *String,\r
-  OUT UINT16                 *ProgressID\r
+  IN BOOLEAN      Attribute,\r
+  IN CONST VOID   *Handle,\r
+  IN CONST CHAR8  *String,\r
+  OUT UINT16      *ProgressID\r
   )\r
 {\r
   //\r
@@ -199,33 +201,38 @@ GetFpdtRecordId (
   // When PcdEdkiiFpdtStringRecordEnableOnly is TRUE, all records are with type of FPDT_DYNAMIC_STRING_EVENT_TYPE.\r
   //\r
   if (String != NULL) {\r
-    if (AsciiStrCmp (String, LOAD_IMAGE_TOK) == 0) {               // "LoadImage:"\r
+    if (AsciiStrCmp (String, LOAD_IMAGE_TOK) == 0) {\r
+      // "LoadImage:"\r
       if (Attribute == PerfStartEntry) {\r
         *ProgressID = MODULE_LOADIMAGE_START_ID;\r
       } else {\r
         *ProgressID = MODULE_LOADIMAGE_END_ID;\r
       }\r
-    } else if (AsciiStrCmp (String, SEC_TOK) == 0 ||               // "SEC"\r
-               AsciiStrCmp (String, PEI_TOK) == 0) {               // "PEI"\r
+    } else if ((AsciiStrCmp (String, SEC_TOK) == 0) ||             // "SEC"\r
+               (AsciiStrCmp (String, PEI_TOK) == 0))               // "PEI"\r
+    {\r
       if (Attribute == PerfStartEntry) {\r
         *ProgressID = PERF_CROSSMODULE_START_ID;\r
       } else {\r
         *ProgressID = PERF_CROSSMODULE_END_ID;\r
       }\r
-    } else if (AsciiStrCmp (String, PEIM_TOK) == 0) {              // "PEIM"\r
+    } else if (AsciiStrCmp (String, PEIM_TOK) == 0) {\r
+      // "PEIM"\r
       if (Attribute == PerfStartEntry) {\r
         *ProgressID = MODULE_START_ID;\r
       } else {\r
         *ProgressID = MODULE_END_ID;\r
       }\r
-    } else {                                                      //Pref used in Modules.\r
+    } else {\r
+      // Pref used in Modules.\r
       if (Attribute == PerfStartEntry) {\r
         *ProgressID = PERF_INMODULE_START_ID;\r
       } else {\r
         *ProgressID = PERF_INMODULE_END_ID;\r
       }\r
     }\r
-  } else if (Handle != NULL) {                                    //Pref used in Modules.\r
+  } else if (Handle != NULL) {\r
+    // Pref used in Modules.\r
     if (Attribute == PerfStartEntry) {\r
       *ProgressID = PERF_INMODULE_START_ID;\r
     } else {\r
@@ -249,9 +256,9 @@ GetFpdtRecordId (
 **/\r
 VOID\r
 CopyStringIntoPerfRecordAndUpdateLength (\r
-  IN OUT CHAR8  *Destination,\r
+  IN OUT CHAR8        *Destination,\r
   IN     CONST CHAR8  *Source,\r
-  IN OUT UINT8  *Length\r
+  IN OUT UINT8        *Length\r
   )\r
 {\r
   UINTN  StringLen;\r
@@ -267,18 +274,18 @@ CopyStringIntoPerfRecordAndUpdateLength (
       DestMax = STRING_SIZE;\r
     }\r
   }\r
+\r
   StringLen = AsciiStrLen (Source);\r
   if (StringLen >= DestMax) {\r
     StringLen = DestMax -1;\r
   }\r
 \r
-  AsciiStrnCpyS(Destination, DestMax, Source, StringLen);\r
+  AsciiStrnCpyS (Destination, DestMax, Source, StringLen);\r
   *Length += (UINT8)DestMax;\r
 \r
   return;\r
 }\r
 \r
-\r
 /**\r
   Convert PEI performance log to FPDT String boot record.\r
 \r
@@ -309,16 +316,16 @@ InsertFpdtRecord (
   IN       PERF_MEASUREMENT_ATTRIBUTE  Attribute\r
   )\r
 {\r
-  FPDT_RECORD_PTR                       FpdtRecordPtr;\r
-  CONST VOID                            *ModuleGuid;\r
-  CONST CHAR8                           *StringPtr;\r
-  EFI_STATUS                            Status;\r
-  UINT64                                TimeStamp;\r
-  FPDT_PEI_EXT_PERF_HEADER              *PeiPerformanceLogHeader;\r
-\r
-  StringPtr = NULL;\r
+  FPDT_RECORD_PTR           FpdtRecordPtr;\r
+  CONST VOID                *ModuleGuid;\r
+  CONST CHAR8               *StringPtr;\r
+  EFI_STATUS                Status;\r
+  UINT64                    TimeStamp;\r
+  FPDT_PEI_EXT_PERF_HEADER  *PeiPerformanceLogHeader;\r
+\r
+  StringPtr                  = NULL;\r
   FpdtRecordPtr.RecordHeader = NULL;\r
-  PeiPerformanceLogHeader = NULL;\r
+  PeiPerformanceLogHeader    = NULL;\r
 \r
   //\r
   // 1. Get the Perf Id for records from PERF_START/PERF_END, PERF_START_EX/PERF_END_EX.\r
@@ -337,7 +344,7 @@ InsertFpdtRecord (
     if ((PerfId != 0) && (IsKnownID (PerfId)) && (!IsKnownTokens (String))) {\r
       return EFI_UNSUPPORTED;\r
     } else if ((PerfId != 0) && (!IsKnownID (PerfId)) && (!IsKnownTokens (String))) {\r
-      if (Attribute == PerfStartEntry && ((PerfId & 0x000F) != 0)) {\r
+      if ((Attribute == PerfStartEntry) && ((PerfId & 0x000F) != 0)) {\r
         PerfId &= 0xFFF0;\r
       } else if ((Attribute == PerfEndEntry) && ((PerfId & 0x000F) == 0)) {\r
         PerfId += 1;\r
@@ -383,113 +390,123 @@ InsertFpdtRecord (
   // 5. Fill in the FPDT record according to different Performance Identifier.\r
   //\r
   switch (PerfId) {\r
-  case MODULE_START_ID:\r
-  case MODULE_END_ID:\r
-    StringPtr = PEIM_TOK;\r
-    if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
-      FpdtRecordPtr.GuidEvent->Header.Type       = FPDT_GUID_EVENT_TYPE;\r
-      FpdtRecordPtr.GuidEvent->Header.Length     = sizeof (FPDT_GUID_EVENT_RECORD);\r
-      FpdtRecordPtr.GuidEvent->Header.Revision   = FPDT_RECORD_REVISION_1;\r
-      FpdtRecordPtr.GuidEvent->ProgressID        = PerfId;\r
-      FpdtRecordPtr.GuidEvent->Timestamp         = TimeStamp;\r
-      CopyMem (&FpdtRecordPtr.GuidEvent->Guid, ModuleGuid, sizeof (EFI_GUID));\r
-    }\r
-    break;\r
-\r
-  case MODULE_LOADIMAGE_START_ID:\r
-  case MODULE_LOADIMAGE_END_ID:\r
-    StringPtr = LOAD_IMAGE_TOK;\r
-    if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
-      FpdtRecordPtr.GuidQwordEvent->Header.Type     = FPDT_GUID_QWORD_EVENT_TYPE;\r
-      FpdtRecordPtr.GuidQwordEvent->Header.Length   = sizeof (FPDT_GUID_QWORD_EVENT_RECORD);\r
-      FpdtRecordPtr.GuidQwordEvent->Header.Revision = FPDT_RECORD_REVISION_1;\r
-      FpdtRecordPtr.GuidQwordEvent->ProgressID      = PerfId;\r
-      FpdtRecordPtr.GuidQwordEvent->Timestamp       = TimeStamp;\r
-      if (PerfId == MODULE_LOADIMAGE_START_ID) {\r
-        PeiPerformanceLogHeader->LoadImageCount++;\r
+    case MODULE_START_ID:\r
+    case MODULE_END_ID:\r
+      StringPtr = PEIM_TOK;\r
+      if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
+        FpdtRecordPtr.GuidEvent->Header.Type     = FPDT_GUID_EVENT_TYPE;\r
+        FpdtRecordPtr.GuidEvent->Header.Length   = sizeof (FPDT_GUID_EVENT_RECORD);\r
+        FpdtRecordPtr.GuidEvent->Header.Revision = FPDT_RECORD_REVISION_1;\r
+        FpdtRecordPtr.GuidEvent->ProgressID      = PerfId;\r
+        FpdtRecordPtr.GuidEvent->Timestamp       = TimeStamp;\r
+        CopyMem (&FpdtRecordPtr.GuidEvent->Guid, ModuleGuid, sizeof (EFI_GUID));\r
       }\r
-      FpdtRecordPtr.GuidQwordEvent->Qword           = PeiPerformanceLogHeader->LoadImageCount;\r
-      CopyMem (&FpdtRecordPtr.GuidQwordEvent->Guid, ModuleGuid, sizeof (EFI_GUID));\r
-    }\r
-    break;\r
-\r
-  case PERF_EVENTSIGNAL_START_ID:\r
-  case PERF_EVENTSIGNAL_END_ID:\r
-  case PERF_CALLBACK_START_ID:\r
-  case PERF_CALLBACK_END_ID:\r
-    if (String == NULL || Guid == NULL) {\r
-      return EFI_INVALID_PARAMETER;\r
-    }\r
-    StringPtr = String;\r
-    if (AsciiStrLen (String) == 0) {\r
-      StringPtr = "unknown name";\r
-    }\r
-    if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
-      FpdtRecordPtr.DualGuidStringEvent->Header.Type      = FPDT_DUAL_GUID_STRING_EVENT_TYPE;\r
-      FpdtRecordPtr.DualGuidStringEvent->Header.Length    = sizeof (FPDT_DUAL_GUID_STRING_EVENT_RECORD);\r
-      FpdtRecordPtr.DualGuidStringEvent->Header.Revision  = FPDT_RECORD_REVISION_1;\r
-      FpdtRecordPtr.DualGuidStringEvent->ProgressID       = PerfId;\r
-      FpdtRecordPtr.DualGuidStringEvent->Timestamp        = TimeStamp;\r
-      CopyMem (&FpdtRecordPtr.DualGuidStringEvent->Guid1, ModuleGuid, sizeof (FpdtRecordPtr.DualGuidStringEvent->Guid1));\r
-      CopyMem (&FpdtRecordPtr.DualGuidStringEvent->Guid2, Guid, sizeof (FpdtRecordPtr.DualGuidStringEvent->Guid2));\r
-      CopyStringIntoPerfRecordAndUpdateLength (FpdtRecordPtr.DualGuidStringEvent->String, StringPtr, &FpdtRecordPtr.DualGuidStringEvent->Header.Length);\r
-    }\r
-    break;\r
-\r
-  case PERF_EVENT_ID:\r
-  case PERF_FUNCTION_START_ID:\r
-  case PERF_FUNCTION_END_ID:\r
-  case PERF_INMODULE_START_ID:\r
-  case PERF_INMODULE_END_ID:\r
-  case PERF_CROSSMODULE_START_ID:\r
-  case PERF_CROSSMODULE_END_ID:\r
-    if (String != NULL && AsciiStrLen (String) != 0) {\r
+\r
+      break;\r
+\r
+    case MODULE_LOADIMAGE_START_ID:\r
+    case MODULE_LOADIMAGE_END_ID:\r
+      StringPtr = LOAD_IMAGE_TOK;\r
+      if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
+        FpdtRecordPtr.GuidQwordEvent->Header.Type     = FPDT_GUID_QWORD_EVENT_TYPE;\r
+        FpdtRecordPtr.GuidQwordEvent->Header.Length   = sizeof (FPDT_GUID_QWORD_EVENT_RECORD);\r
+        FpdtRecordPtr.GuidQwordEvent->Header.Revision = FPDT_RECORD_REVISION_1;\r
+        FpdtRecordPtr.GuidQwordEvent->ProgressID      = PerfId;\r
+        FpdtRecordPtr.GuidQwordEvent->Timestamp       = TimeStamp;\r
+        if (PerfId == MODULE_LOADIMAGE_START_ID) {\r
+          PeiPerformanceLogHeader->LoadImageCount++;\r
+        }\r
+\r
+        FpdtRecordPtr.GuidQwordEvent->Qword = PeiPerformanceLogHeader->LoadImageCount;\r
+        CopyMem (&FpdtRecordPtr.GuidQwordEvent->Guid, ModuleGuid, sizeof (EFI_GUID));\r
+      }\r
+\r
+      break;\r
+\r
+    case PERF_EVENTSIGNAL_START_ID:\r
+    case PERF_EVENTSIGNAL_END_ID:\r
+    case PERF_CALLBACK_START_ID:\r
+    case PERF_CALLBACK_END_ID:\r
+      if ((String == NULL) || (Guid == NULL)) {\r
+        return EFI_INVALID_PARAMETER;\r
+      }\r
+\r
       StringPtr = String;\r
-    } else {\r
-      StringPtr = "unknown name";\r
-    }\r
-    if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
-      FpdtRecordPtr.DynamicStringEvent->Header.Type       = FPDT_DYNAMIC_STRING_EVENT_TYPE;\r
-      FpdtRecordPtr.DynamicStringEvent->Header.Length     = sizeof (FPDT_DYNAMIC_STRING_EVENT_RECORD);\r
-      FpdtRecordPtr.DynamicStringEvent->Header.Revision   = FPDT_RECORD_REVISION_1;\r
-      FpdtRecordPtr.DynamicStringEvent->ProgressID        = PerfId;\r
-      FpdtRecordPtr.DynamicStringEvent->Timestamp         = TimeStamp;\r
-      CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, ModuleGuid, sizeof (EFI_GUID));\r
-      CopyStringIntoPerfRecordAndUpdateLength (FpdtRecordPtr.DynamicStringEvent->String, StringPtr, &FpdtRecordPtr.DynamicStringEvent->Header.Length);\r
-    }\r
-    break;\r
-\r
-  default:\r
-    if (Attribute != PerfEntry) {\r
-     if (String != NULL && AsciiStrLen (String) != 0) {\r
-       StringPtr = String;\r
-     } else {\r
-       StringPtr = "unknown name";\r
-     }\r
-     if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
-       FpdtRecordPtr.DynamicStringEvent->Header.Type       = FPDT_DYNAMIC_STRING_EVENT_TYPE;\r
-       FpdtRecordPtr.DynamicStringEvent->Header.Length     = sizeof (FPDT_DYNAMIC_STRING_EVENT_RECORD);\r
-       FpdtRecordPtr.DynamicStringEvent->Header.Revision   = FPDT_RECORD_REVISION_1;\r
-       FpdtRecordPtr.DynamicStringEvent->ProgressID        = PerfId;\r
-       FpdtRecordPtr.DynamicStringEvent->Timestamp         = TimeStamp;\r
-       CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, ModuleGuid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
-       CopyStringIntoPerfRecordAndUpdateLength (FpdtRecordPtr.DynamicStringEvent->String, StringPtr, &FpdtRecordPtr.DynamicStringEvent->Header.Length);\r
-     }\r
-  } else {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-   break;\r
+      if (AsciiStrLen (String) == 0) {\r
+        StringPtr = "unknown name";\r
+      }\r
+\r
+      if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
+        FpdtRecordPtr.DualGuidStringEvent->Header.Type     = FPDT_DUAL_GUID_STRING_EVENT_TYPE;\r
+        FpdtRecordPtr.DualGuidStringEvent->Header.Length   = sizeof (FPDT_DUAL_GUID_STRING_EVENT_RECORD);\r
+        FpdtRecordPtr.DualGuidStringEvent->Header.Revision = FPDT_RECORD_REVISION_1;\r
+        FpdtRecordPtr.DualGuidStringEvent->ProgressID      = PerfId;\r
+        FpdtRecordPtr.DualGuidStringEvent->Timestamp       = TimeStamp;\r
+        CopyMem (&FpdtRecordPtr.DualGuidStringEvent->Guid1, ModuleGuid, sizeof (FpdtRecordPtr.DualGuidStringEvent->Guid1));\r
+        CopyMem (&FpdtRecordPtr.DualGuidStringEvent->Guid2, Guid, sizeof (FpdtRecordPtr.DualGuidStringEvent->Guid2));\r
+        CopyStringIntoPerfRecordAndUpdateLength (FpdtRecordPtr.DualGuidStringEvent->String, StringPtr, &FpdtRecordPtr.DualGuidStringEvent->Header.Length);\r
+      }\r
+\r
+      break;\r
+\r
+    case PERF_EVENT_ID:\r
+    case PERF_FUNCTION_START_ID:\r
+    case PERF_FUNCTION_END_ID:\r
+    case PERF_INMODULE_START_ID:\r
+    case PERF_INMODULE_END_ID:\r
+    case PERF_CROSSMODULE_START_ID:\r
+    case PERF_CROSSMODULE_END_ID:\r
+      if ((String != NULL) && (AsciiStrLen (String) != 0)) {\r
+        StringPtr = String;\r
+      } else {\r
+        StringPtr = "unknown name";\r
+      }\r
+\r
+      if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
+        FpdtRecordPtr.DynamicStringEvent->Header.Type     = FPDT_DYNAMIC_STRING_EVENT_TYPE;\r
+        FpdtRecordPtr.DynamicStringEvent->Header.Length   = sizeof (FPDT_DYNAMIC_STRING_EVENT_RECORD);\r
+        FpdtRecordPtr.DynamicStringEvent->Header.Revision = FPDT_RECORD_REVISION_1;\r
+        FpdtRecordPtr.DynamicStringEvent->ProgressID      = PerfId;\r
+        FpdtRecordPtr.DynamicStringEvent->Timestamp       = TimeStamp;\r
+        CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, ModuleGuid, sizeof (EFI_GUID));\r
+        CopyStringIntoPerfRecordAndUpdateLength (FpdtRecordPtr.DynamicStringEvent->String, StringPtr, &FpdtRecordPtr.DynamicStringEvent->Header.Length);\r
+      }\r
+\r
+      break;\r
+\r
+    default:\r
+      if (Attribute != PerfEntry) {\r
+        if ((String != NULL) && (AsciiStrLen (String) != 0)) {\r
+          StringPtr = String;\r
+        } else {\r
+          StringPtr = "unknown name";\r
+        }\r
+\r
+        if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
+          FpdtRecordPtr.DynamicStringEvent->Header.Type     = FPDT_DYNAMIC_STRING_EVENT_TYPE;\r
+          FpdtRecordPtr.DynamicStringEvent->Header.Length   = sizeof (FPDT_DYNAMIC_STRING_EVENT_RECORD);\r
+          FpdtRecordPtr.DynamicStringEvent->Header.Revision = FPDT_RECORD_REVISION_1;\r
+          FpdtRecordPtr.DynamicStringEvent->ProgressID      = PerfId;\r
+          FpdtRecordPtr.DynamicStringEvent->Timestamp       = TimeStamp;\r
+          CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, ModuleGuid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+          CopyStringIntoPerfRecordAndUpdateLength (FpdtRecordPtr.DynamicStringEvent->String, StringPtr, &FpdtRecordPtr.DynamicStringEvent->Header.Length);\r
+        }\r
+      } else {\r
+        return EFI_INVALID_PARAMETER;\r
+      }\r
+\r
+      break;\r
   }\r
 \r
   //\r
   // 5.2 When PcdEdkiiFpdtStringRecordEnableOnly==TRUE, create string record for all Perf entries.\r
   //\r
   if (PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
-    FpdtRecordPtr.DynamicStringEvent->Header.Type       = FPDT_DYNAMIC_STRING_EVENT_TYPE;\r
-    FpdtRecordPtr.DynamicStringEvent->Header.Length     = sizeof (FPDT_DYNAMIC_STRING_EVENT_RECORD);\r
-    FpdtRecordPtr.DynamicStringEvent->Header.Revision   = FPDT_RECORD_REVISION_1;\r
-    FpdtRecordPtr.DynamicStringEvent->ProgressID        = PerfId;\r
-    FpdtRecordPtr.DynamicStringEvent->Timestamp         = TimeStamp;\r
+    FpdtRecordPtr.DynamicStringEvent->Header.Type     = FPDT_DYNAMIC_STRING_EVENT_TYPE;\r
+    FpdtRecordPtr.DynamicStringEvent->Header.Length   = sizeof (FPDT_DYNAMIC_STRING_EVENT_RECORD);\r
+    FpdtRecordPtr.DynamicStringEvent->Header.Revision = FPDT_RECORD_REVISION_1;\r
+    FpdtRecordPtr.DynamicStringEvent->ProgressID      = PerfId;\r
+    FpdtRecordPtr.DynamicStringEvent->Timestamp       = TimeStamp;\r
     if (Guid != NULL) {\r
       //\r
       // Cache the event guid in string event record.\r
@@ -498,6 +515,7 @@ InsertFpdtRecord (
     } else {\r
       CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, ModuleGuid, sizeof (EFI_GUID));\r
     }\r
+\r
     CopyStringIntoPerfRecordAndUpdateLength (FpdtRecordPtr.DynamicStringEvent->String, StringPtr, &FpdtRecordPtr.DynamicStringEvent->Header.Length);\r
   }\r
 \r
@@ -543,7 +561,7 @@ StartPerformanceMeasurementEx (
   IN UINT32       Identifier\r
   )\r
 {\r
-  CONST CHAR8     *String;\r
+  CONST CHAR8  *String;\r
 \r
   if (Token != NULL) {\r
     String = Token;\r
@@ -554,7 +572,6 @@ StartPerformanceMeasurementEx (
   }\r
 \r
   return (RETURN_STATUS)InsertFpdtRecord (Handle, NULL, String, TimeStamp, 0, (UINT16)Identifier, PerfStartEntry);\r
-\r
 }\r
 \r
 /**\r
@@ -589,7 +606,7 @@ EndPerformanceMeasurementEx (
   IN UINT32       Identifier\r
   )\r
 {\r
-  CONST CHAR8     *String;\r
+  CONST CHAR8  *String;\r
 \r
   if (Token != NULL) {\r
     String = Token;\r
@@ -648,13 +665,13 @@ EndPerformanceMeasurementEx (
 UINTN\r
 EFIAPI\r
 GetPerformanceMeasurementEx (\r
-  IN  UINTN       LogEntryKey,\r
-  OUT CONST VOID  **Handle,\r
-  OUT CONST CHAR8 **Token,\r
-  OUT CONST CHAR8 **Module,\r
-  OUT UINT64      *StartTimeStamp,\r
-  OUT UINT64      *EndTimeStamp,\r
-  OUT UINT32      *Identifier\r
+  IN  UINTN        LogEntryKey,\r
+  OUT CONST VOID   **Handle,\r
+  OUT CONST CHAR8  **Token,\r
+  OUT CONST CHAR8  **Module,\r
+  OUT UINT64       *StartTimeStamp,\r
+  OUT UINT64       *EndTimeStamp,\r
+  OUT UINT32       *Identifier\r
   )\r
 {\r
   return 0;\r
@@ -771,12 +788,12 @@ EndPerformanceMeasurement (
 UINTN\r
 EFIAPI\r
 GetPerformanceMeasurement (\r
-  IN  UINTN       LogEntryKey,\r
-  OUT CONST VOID  **Handle,\r
-  OUT CONST CHAR8 **Token,\r
-  OUT CONST CHAR8 **Module,\r
-  OUT UINT64      *StartTimeStamp,\r
-  OUT UINT64      *EndTimeStamp\r
+  IN  UINTN        LogEntryKey,\r
+  OUT CONST VOID   **Handle,\r
+  OUT CONST CHAR8  **Token,\r
+  OUT CONST CHAR8  **Module,\r
+  OUT UINT64       *StartTimeStamp,\r
+  OUT UINT64       *EndTimeStamp\r
   )\r
 {\r
   return 0;\r
@@ -800,7 +817,7 @@ PerformanceMeasurementEnabled (
   VOID\r
   )\r
 {\r
-  return (BOOLEAN) ((PcdGet8(PcdPerformanceLibraryPropertyMask) & PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED) != 0);\r
+  return (BOOLEAN)((PcdGet8 (PcdPerformanceLibraryPropertyMask) & PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED) != 0);\r
 }\r
 \r
 /**\r
@@ -846,14 +863,15 @@ LogPerformanceMeasurement (
 BOOLEAN\r
 EFIAPI\r
 LogPerformanceMeasurementEnabled (\r
-  IN  CONST UINTN        Type\r
+  IN  CONST UINTN  Type\r
   )\r
 {\r
   //\r
   // When Performance measurement is enabled and the type is not filtered, the performance can be logged.\r
   //\r
-  if (PerformanceMeasurementEnabled () && (PcdGet8(PcdPerformanceLibraryPropertyMask) & Type) == 0) {\r
+  if (PerformanceMeasurementEnabled () && ((PcdGet8 (PcdPerformanceLibraryPropertyMask) & Type) == 0)) {\r
     return TRUE;\r
   }\r
+\r
   return FALSE;\r
 }\r