case PERF_EVENTSIGNAL_END_ID:\r
case PERF_CALLBACK_START_ID:\r
case PERF_CALLBACK_END_ID:\r
- if (String == NULL) {\r
+ if (String == NULL || Guid == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
- //\r
- // Cache the event guid in string event record when PcdEdkiiFpdtStringRecordEnableOnly == TRUE\r
- //\r
- CopyGuid (&ModuleGuid, Guid);\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.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
+ if (Guid != NULL) {\r
+ //\r
+ // Cache the event guid in string event record.\r
+ //\r
+ CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, Guid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ } else {\r
+ CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, &ModuleGuid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ }\r
if (AsciiStrLen (StringPtr) == 0) {\r
StringPtr = "unknown name";\r
}\r
//\r
PeiFirmwarePerformance = (UINT8*)GET_GUID_HOB_DATA (GuidHob);\r
*PeiPerformanceLogHeader = (FPDT_PEI_EXT_PERF_HEADER *)PeiFirmwarePerformance;\r
- if (!(*PeiPerformanceLogHeader)->HobIsFull && (*PeiPerformanceLogHeader)->SizeOfAllEntries + RecordSize > (UINTN)(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 <= (UINTN)(PeiPerformanceLogEntries * PEI_MAX_RECORD_SIZE)) {\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
case PERF_EVENTSIGNAL_END_ID:\r
case PERF_CALLBACK_START_ID:\r
case PERF_CALLBACK_END_ID:\r
- if (String != NULL && AsciiStrLen (String) != 0) {\r
- StringPtr = String;\r
- } else {\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->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_EVENTSIGNAL_END_ID:\r
case PERF_CALLBACK_START_ID:\r
case PERF_CALLBACK_END_ID:\r
- if (String == NULL) {\r
+ if (String == NULL || Guid == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
- //\r
- // Cache the event guid in string event record when PcdEdkiiFpdtStringRecordEnableOnly == TRUE\r
- //\r
- CopyGuid (&ModuleGuid, Guid);\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.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
+ if (Guid != NULL) {\r
+ //\r
+ // Cache the event guid in string event record.\r
+ //\r
+ CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, Guid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ } else {\r
+ CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, &ModuleGuid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ }\r
if (AsciiStrLen (StringPtr) == 0) {\r
StringPtr = "unknown name";\r
}\r