summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c16
-rw-r--r--MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c16
-rw-r--r--MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c15
3 files changed, 30 insertions, 17 deletions
diff --git a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c
index 696aa6673e..90053e7676 100644
--- a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c
+++ b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c
@@ -88,6 +88,7 @@ InternalSearchForGaugeEntry (
)
{
UINT32 Index;
+ UINT32 Index2;
UINT32 NumberOfEntries;
GAUGE_DATA_ENTRY_EX *GaugeEntryExArray;
@@ -101,13 +102,16 @@ InternalSearchForGaugeEntry (
NumberOfEntries = mGaugeData->NumberOfEntries;
GaugeEntryExArray = (GAUGE_DATA_ENTRY_EX *) (mGaugeData + 1);
+ Index2 = 0;
+
for (Index = 0; Index < NumberOfEntries; Index++) {
- if ((GaugeEntryExArray[Index].Handle == (EFI_PHYSICAL_ADDRESS) (UINTN) Handle) &&
- AsciiStrnCmp (GaugeEntryExArray[Index].Token, Token, DXE_PERFORMANCE_STRING_LENGTH) == 0 &&
- AsciiStrnCmp (GaugeEntryExArray[Index].Module, Module, DXE_PERFORMANCE_STRING_LENGTH) == 0 &&
- (GaugeEntryExArray[Index].Identifier == Identifier) &&
- GaugeEntryExArray[Index].EndTimeStamp == 0
- ) {
+ Index2 = NumberOfEntries - 1 - Index;
+ if (GaugeEntryExArray[Index2].EndTimeStamp == 0 &&
+ (GaugeEntryExArray[Index2].Handle == (EFI_PHYSICAL_ADDRESS) (UINTN) Handle) &&
+ AsciiStrnCmp (GaugeEntryExArray[Index2].Token, Token, DXE_PERFORMANCE_STRING_LENGTH) == 0 &&
+ AsciiStrnCmp (GaugeEntryExArray[Index2].Module, Module, DXE_PERFORMANCE_STRING_LENGTH) == 0 &&
+ (GaugeEntryExArray[Index2].Identifier == Identifier)) {
+ Index = Index2;
break;
}
}
diff --git a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c
index 7a2d3da0ec..60451eefdf 100644
--- a/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c
+++ b/MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.c
@@ -113,6 +113,7 @@ InternalSearchForLogEntry (
)
{
UINT32 Index;
+ UINT32 Index2;
UINT32 NumberOfEntries;
PEI_PERFORMANCE_LOG_ENTRY *LogEntryArray;
@@ -126,13 +127,16 @@ InternalSearchForLogEntry (
NumberOfEntries = PeiPerformanceLog->NumberOfEntries;
LogEntryArray = (PEI_PERFORMANCE_LOG_ENTRY *) (PeiPerformanceLog + 1);
+ Index2 = 0;
+
for (Index = 0; Index < NumberOfEntries; Index++) {
- if ((LogEntryArray[Index].Handle == (EFI_PHYSICAL_ADDRESS) (UINTN) Handle) &&
- AsciiStrnCmp (LogEntryArray[Index].Token, Token, PEI_PERFORMANCE_STRING_LENGTH) == 0 &&
- AsciiStrnCmp (LogEntryArray[Index].Module, Module, PEI_PERFORMANCE_STRING_LENGTH) == 0 &&
- (PeiPerformanceIdArray[Index] == Identifier) &&
- LogEntryArray[Index].EndTimeStamp == 0
- ) {
+ Index2 = NumberOfEntries - 1 - Index;
+ if (LogEntryArray[Index2].EndTimeStamp == 0 &&
+ (LogEntryArray[Index2].Handle == (EFI_PHYSICAL_ADDRESS) (UINTN) Handle) &&
+ AsciiStrnCmp (LogEntryArray[Index2].Token, Token, PEI_PERFORMANCE_STRING_LENGTH) == 0 &&
+ AsciiStrnCmp (LogEntryArray[Index2].Module, Module, PEI_PERFORMANCE_STRING_LENGTH) == 0 &&
+ (PeiPerformanceIdArray[Index2] == Identifier)) {
+ Index = Index2;
break;
}
}
diff --git a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c
index ca953df932..214d044bcb 100644
--- a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c
+++ b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.c
@@ -93,6 +93,7 @@ SmmSearchForGaugeEntry (
)
{
UINT32 Index;
+ UINT32 Index2;
UINT32 NumberOfEntries;
GAUGE_DATA_ENTRY_EX *GaugeEntryExArray;
@@ -106,12 +107,16 @@ SmmSearchForGaugeEntry (
NumberOfEntries = mGaugeData->NumberOfEntries;
GaugeEntryExArray = (GAUGE_DATA_ENTRY_EX *) (mGaugeData + 1);
+ Index2 = 0;
+
for (Index = 0; Index < NumberOfEntries; Index++) {
- if ((GaugeEntryExArray[Index].Handle == (EFI_PHYSICAL_ADDRESS) (UINTN) Handle) &&
- AsciiStrnCmp (GaugeEntryExArray[Index].Token, Token, SMM_PERFORMANCE_STRING_LENGTH) == 0 &&
- AsciiStrnCmp (GaugeEntryExArray[Index].Module, Module, SMM_PERFORMANCE_STRING_LENGTH) == 0 &&
- (GaugeEntryExArray[Index].Identifier == Identifier) &&
- GaugeEntryExArray[Index].EndTimeStamp == 0) {
+ Index2 = NumberOfEntries - 1 - Index;
+ if (GaugeEntryExArray[Index2].EndTimeStamp == 0 &&
+ (GaugeEntryExArray[Index2].Handle == (EFI_PHYSICAL_ADDRESS) (UINTN) Handle) &&
+ AsciiStrnCmp (GaugeEntryExArray[Index2].Token, Token, SMM_PERFORMANCE_STRING_LENGTH) == 0 &&
+ AsciiStrnCmp (GaugeEntryExArray[Index2].Module, Module, SMM_PERFORMANCE_STRING_LENGTH) == 0 &&
+ (GaugeEntryExArray[Index2].Identifier == Identifier)) {
+ Index = Index2;
break;
}
}