summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Fan <jeff.fan@intel.com>2015-08-27 02:08:56 +0000
committervanjeff <vanjeff@Edk2>2015-08-27 02:08:56 +0000
commit8a079ef232dc630885051091649b2dac139ce755 (patch)
tree081f98e8188815905aa8cfc15762b374830cd8d4
parent3b9468ef28c5cc0cd7d1d1f58368fdd92b7da8bf (diff)
downloadedk2-8a079ef232dc630885051091649b2dac139ce755.tar.gz
edk2-8a079ef232dc630885051091649b2dac139ce755.tar.bz2
edk2-8a079ef232dc630885051091649b2dac139ce755.zip
SourceLevelDebugPkg/DebugTimer: Timer count value 0 not calculated
Actually, TimerCycle is APIC timer's initial count. Timer count value 0 is missed when calculating Delta value. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18329 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.c12
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.h6
2 files changed, 9 insertions, 9 deletions
diff --git a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.c b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.c
index bf965cb3c9..e287c4cbbe 100644
--- a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.c
+++ b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.c
@@ -19,7 +19,7 @@
@param[out] TimerFrequency Local APIC timer frequency returned.
@param[in] DumpFlag If TRUE, dump Local APIC timer's parameter.
-
+
@return 32-bit Local APIC timer init count.
**/
UINT32
@@ -108,8 +108,8 @@ SaveAndSetDebugTimerInterrupt (
/**
Check if the timer is time out.
-
- @param[in] TimerCycle Timer total count.
+
+ @param[in] TimerCycle Timer initial count.
@param[in] Timer The start timer from the begin.
@param[in] TimeoutTicker Ticker number need time out.
@@ -138,11 +138,11 @@ IsDebugTimerTimeout (
Delta = Timer - CurrentTimer;
} else {
//
- // Handle one roll-over.
+ // Handle one roll-over.
//
- Delta = TimerCycle - (CurrentTimer - Timer);
+ Delta = TimerCycle - (CurrentTimer - Timer) + 1;
}
-
+
return (BOOLEAN) (Delta >= TimeoutTicker);
}
diff --git a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.h b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.h
index 60550d42cf..e480fa3e0c 100644
--- a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.h
+++ b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.h
@@ -20,7 +20,7 @@
@param[out] TimerFrequency Local APIC timer frequency returned.
@param[in] DumpFlag If TRUE, dump Local APIC timer's parameter.
-
+
@return 32-bit Local APIC timer init count.
**/
UINT32
@@ -31,8 +31,8 @@ InitializeDebugTimer (
/**
Check if the timer is time out.
-
- @param[in] TimerCycle Timer total count.
+
+ @param[in] TimerCycle Timer initial count.
@param[in] Timer The start timer from the begin.
@param[in] TimeoutTicker Ticker number need time out.