UINTN Size;\r
EFI_HANDLE TempHandle;\r
EFI_STATUS Status;\r
+ EFI_STRING StringPtrUnknown;\r
\r
+ StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL); \r
IncFlag = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_ALL), NULL);\r
PrintToken( STRING_TOKEN (STR_DP_SECTION_HEADER),\r
- (IncFlag == NULL) ? ALit_UNKNOWN: IncFlag);\r
+ (IncFlag == NULL) ? StringPtrUnknown : IncFlag);\r
+ FreePool (StringPtrUnknown);\r
\r
// Get Handle information\r
//\r
{\r
++Index; // Count every record. First record is 1.\r
ElapsedTime = 0;\r
+ if (IncFlag != NULL) {\r
+ FreePool ((void *)IncFlag);\r
+ }\r
if (Measurement.EndTimeStamp != 0) {\r
Duration = GetDuration (&Measurement);\r
ElapsedTime = DurationInMicroSeconds ( Duration );\r
- IncFlag = STR_DP_COMPLETE;\r
+ IncFlag = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_COMPLETE), NULL);\r
}\r
else {\r
- IncFlag = STR_DP_INCOMPLETE; // Mark incomplete records\r
+ IncFlag = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_INCOMPLETE), NULL); // Mark incomplete records\r
}\r
if ((ElapsedTime < mInterestThreshold) ||\r
((ExcludeFlag) && (GetCumulativeItem(&Measurement) >= 0))\r
if (HandleBuffer != &TempHandle) {\r
FreePool (HandleBuffer);\r
}\r
+ FreePool ((void *)IncFlag);\r
}\r
\r
/** \r
UINTN Index;\r
\r
EFI_STRING StringPtr;\r
+ EFI_STRING StringPtrUnknown;\r
\r
+ StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL); \r
StringPtr = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_RAWTRACE), NULL);\r
PrintToken( STRING_TOKEN (STR_DP_SECTION_HEADER),\r
- (StringPtr == NULL) ? ALit_UNKNOWN: StringPtr);\r
+ (StringPtr == NULL) ? StringPtrUnknown : StringPtr);\r
+ FreePool (StringPtr);\r
+ FreePool (StringPtrUnknown);\r
\r
PrintToken (STRING_TOKEN (STR_DP_RAW_HEADR) );\r
PrintToken (STRING_TOKEN (STR_DP_RAW_DASHES) );\r
**/\r
VOID\r
ProcessPhases(\r
- UINT64 Ticker\r
+ IN UINT64 Ticker\r
)\r
{\r
MEASUREMENT_RECORD Measurement;\r
UINT64 Total;\r
EFI_STRING StringPtr;\r
UINTN LogEntryKey;\r
+ EFI_STRING StringPtrUnknown;\r
\r
BdsTimeoutValue = 0;\r
SecTime = 0;\r
//\r
// Get Execution Phase Statistics\r
//\r
+ StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL); \r
StringPtr = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_PHASES), NULL);\r
PrintToken( STRING_TOKEN (STR_DP_SECTION_HEADER),\r
- (StringPtr == NULL) ? ALit_UNKNOWN: StringPtr);\r
+ (StringPtr == NULL) ? StringPtrUnknown : StringPtr);\r
+ FreePool (StringPtr);\r
+ FreePool (StringPtrUnknown);\r
\r
LogEntryKey = 0;\r
while ((LogEntryKey = GetPerformanceMeasurement (\r
UINTN Size;\r
EFI_HANDLE TempHandle;\r
EFI_STATUS Status;\r
+ EFI_STRING StringPtrUnknown;\r
\r
+ StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL); \r
StringPtr = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_DRIVERS), NULL);\r
PrintToken( STRING_TOKEN (STR_DP_SECTION_HEADER),\r
- (StringPtr == NULL) ? ALit_UNKNOWN: StringPtr);\r
+ (StringPtr == NULL) ? StringPtrUnknown : StringPtr);\r
+ FreePool (StringPtr);\r
+ FreePool (StringPtrUnknown);\r
\r
Size = 0;\r
HandleBuffer = &TempHandle;\r
EFI_STRING StringPtr;\r
UINTN LogEntryKey;\r
UINTN TIndex;\r
+ EFI_STRING StringPtrUnknown;\r
\r
-\r
+ StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL); \r
StringPtr = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_PEIMS), NULL);\r
PrintToken( STRING_TOKEN (STR_DP_SECTION_HEADER),\r
- (StringPtr == NULL) ? ALit_UNKNOWN: StringPtr);\r
+ (StringPtr == NULL) ? StringPtrUnknown : StringPtr);\r
+ FreePool (StringPtr);\r
+ FreePool (StringPtrUnknown);\r
\r
PrintToken (STRING_TOKEN (STR_DP_PEIM_SECTION));\r
PrintToken (STRING_TOKEN (STR_DP_DASHES));\r
Duration = GetDuration (&Measurement);\r
ElapsedTime = DurationInMicroSeconds ( Duration ); // Calculate elapsed time in microseconds\r
if (ElapsedTime >= mInterestThreshold) {\r
- GetNameFromHandle ((EFI_HANDLE) Measurement.Handle); // Name placed in mGaugeString\r
+ // PEIM FILE Handle is the start address of its FFS file that contains its file guid.\r
PrintToken (STRING_TOKEN (STR_DP_PEIM_STAT2),\r
TIndex, // 1 based, Which measurement record is being printed\r
- Measurement.Handle,\r
- mGaugeString,\r
+ Measurement.Handle, // base address\r
+ Measurement.Handle, // file guid\r
ElapsedTime\r
);\r
}\r
EFI_STRING StringPtr;\r
UINTN LogEntryKey;\r
UINTN Index; // Index, or number, of the measurement record being processed\r
+ EFI_STRING StringPtrUnknown;\r
\r
+ StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL); \r
StringPtr = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_GENERAL), NULL);\r
PrintToken( STRING_TOKEN (STR_DP_SECTION_HEADER),\r
- (StringPtr == NULL) ? ALit_UNKNOWN: StringPtr);\r
+ (StringPtr == NULL) ? StringPtrUnknown: StringPtr);\r
+ FreePool (StringPtr);\r
+ FreePool (StringPtrUnknown);\r
\r
PrintToken (STRING_TOKEN (STR_DP_GLOBAL_SECTION));\r
PrintToken (STRING_TOKEN (STR_DP_DASHES));\r
VOID\r
)\r
{\r
- UINT64 Avgval; // the computed average duration\r
+ UINT64 AvgDur; // the computed average duration\r
+ UINT64 Dur;\r
+ UINT64 MinDur;\r
+ UINT64 MaxDur;\r
EFI_STRING StringPtr;\r
UINTN TIndex;\r
+ EFI_STRING StringPtrUnknown;\r
\r
-\r
+ StringPtrUnknown = HiiGetString (gHiiHandle, STRING_TOKEN (STR_ALIT_UNKNOWN), NULL); \r
StringPtr = HiiGetString (gHiiHandle, STRING_TOKEN (STR_DP_SECTION_CUMULATIVE), NULL);\r
PrintToken( STRING_TOKEN (STR_DP_SECTION_HEADER),\r
- (StringPtr == NULL) ? ALit_UNKNOWN: StringPtr);\r
+ (StringPtr == NULL) ? StringPtrUnknown: StringPtr);\r
+ FreePool (StringPtr);\r
+ FreePool (StringPtrUnknown);\r
\r
PrintToken (STRING_TOKEN (STR_DP_CUMULATIVE_SECT_1));\r
PrintToken (STRING_TOKEN (STR_DP_CUMULATIVE_SECT_2));\r
PrintToken (STRING_TOKEN (STR_DP_DASHES));\r
\r
for ( TIndex = 0; TIndex < NumCum; ++TIndex) {\r
- Avgval = DivU64x32 (CumData[TIndex].Duration, CumData[TIndex].Count);\r
- PrintToken (STRING_TOKEN (STR_DP_CUMULATIVE_STATS),\r
- CumData[TIndex].Name,\r
- CumData[TIndex].Count,\r
- DurationInMicroSeconds(CumData[TIndex].Duration),\r
- DurationInMicroSeconds(Avgval),\r
- DurationInMicroSeconds(CumData[TIndex].MinDur),\r
- DurationInMicroSeconds(CumData[TIndex].MaxDur)\r
- );\r
+ if (CumData[TIndex].Count != 0) {\r
+ AvgDur = DivU64x32 (CumData[TIndex].Duration, CumData[TIndex].Count);\r
+ AvgDur = DurationInMicroSeconds(AvgDur);\r
+ Dur = DurationInMicroSeconds(CumData[TIndex].Duration);\r
+ MaxDur = DurationInMicroSeconds(CumData[TIndex].MaxDur);\r
+ MinDur = DurationInMicroSeconds(CumData[TIndex].MinDur);\r
+ \r
+ PrintToken (STRING_TOKEN (STR_DP_CUMULATIVE_STATS),\r
+ CumData[TIndex].Name,\r
+ CumData[TIndex].Count,\r
+ Dur,\r
+ AvgDur,\r
+ MinDur,\r
+ MaxDur\r
+ );\r
+ }\r
}\r
}\r