From 034307a7ec57dd87b83b14e2c706b3e7c2d302c5 Mon Sep 17 00:00:00 2001 From: lzeng14 Date: Sun, 30 Oct 2011 13:14:44 +0000 Subject: Add BaseTscTimerLib, and then merge the three TscTimerLib to one directory. Signed-off-by: lzeng14 Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12604 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Library/TscTimerLib/TscTimerLibInternal.h | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 PerformancePkg/Library/TscTimerLib/TscTimerLibInternal.h (limited to 'PerformancePkg/Library/TscTimerLib/TscTimerLibInternal.h') diff --git a/PerformancePkg/Library/TscTimerLib/TscTimerLibInternal.h b/PerformancePkg/Library/TscTimerLib/TscTimerLibInternal.h new file mode 100644 index 0000000000..a4ed0ebb31 --- /dev/null +++ b/PerformancePkg/Library/TscTimerLib/TscTimerLibInternal.h @@ -0,0 +1,55 @@ +/** @file + Internal header file for TscTimerLib instances. + + Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
+ 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 _TSC_TIMER_LIB_INTERNAL_H_ +#define _TSC_TIMER_LIB_INTERNAL_H_ + +#include + +#include +#include +#include +#include +#include + +/** Get TSC frequency. + + @return The number of TSC counts per second. + +**/ +UINT64 +InternalGetTscFrequency ( + VOID + ); + +/** Calculate TSC frequency. + + The TSC counting frequency is determined by comparing how far it counts + during a 1ms period as determined by the ACPI timer. The ACPI timer is + used because it counts at a known frequency. + If ACPI I/O space not enabled, this function will enable it. Then the + TSC is sampled, followed by waiting for 3579 clocks of the ACPI timer, or 1ms. + The TSC is then sampled again. The difference multiplied by 1000 is the TSC + frequency. There will be a small error because of the overhead of reading + the ACPI timer. An attempt is made to determine and compensate for this error. + + @return The number of TSC counts per second. + +**/ +UINT64 +InternalCalculateTscFrequency ( + VOID + ); + +#endif -- cgit v1.2.3