Jeff Fan 08021523f8 SourceLevelDebugPkg: Use CPU Local APIC timer to handle timeout.
Use CPU Local APIC timer to handle timeout when read data from debug port, instead of the TimerLib in Debug Communication lib instances.
It could remove much duplicated code in Debug Communication Lib instances.

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@17089 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-01 07:51:15 +00:00

50 lines
1.4 KiB
C

/** @file
Header file for debug timer to support debug agent library implementation.
Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _DEBUG_TIMER_H_
#define _DEBUG_TIMER_H_
/**
Initialize CPU local APIC timer.
@param[out] Local APIC timer frequency returned.
@return 32-bit Local APIC timer init count.
**/
UINT32
InitializeDebugTimer (
OUT UINT32 *TimerFrequency
);
/**
Check if the timer is time out.
@param[in] TimerCycle Timer total count.
@param[in] Timer The start timer from the begin.
@param[in] TimeoutTicker Ticker number need time out.
@return TRUE Timer time out occurs.
@retval FALSE Timer does not time out.
**/
BOOLEAN
IsDebugTimerTimeout (
IN UINT32 TimerCycle,
IN UINT32 Timer,
IN UINT32 TimeoutTicker
);
#endif