diff options
author | Jeff Fan <jeff.fan@intel.com> | 2015-08-27 02:08:56 +0000 |
---|---|---|
committer | vanjeff <vanjeff@Edk2> | 2015-08-27 02:08:56 +0000 |
commit | 8a079ef232dc630885051091649b2dac139ce755 (patch) | |
tree | 081f98e8188815905aa8cfc15762b374830cd8d4 | |
parent | 3b9468ef28c5cc0cd7d1d1f58368fdd92b7da8bf (diff) | |
download | edk2-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.c | 12 | ||||
-rw-r--r-- | SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugTimer.h | 6 |
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.
|