diff options
author | lzeng14 <lzeng14@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-10-30 13:14:44 +0000 |
---|---|---|
committer | lzeng14 <lzeng14@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-10-30 13:14:44 +0000 |
commit | 034307a7ec57dd87b83b14e2c706b3e7c2d302c5 (patch) | |
tree | 67c3de8cd04574fa7fa86fed925f6c5be792de65 /PerformancePkg/Library/TscTimerLib/TscTimerLibInternal.h | |
parent | b3c30cb37fd066e3c719ef819704ad7f65e10630 (diff) | |
download | edk2-034307a7ec57dd87b83b14e2c706b3e7c2d302c5.tar.gz edk2-034307a7ec57dd87b83b14e2c706b3e7c2d302c5.tar.bz2 edk2-034307a7ec57dd87b83b14e2c706b3e7c2d302c5.zip |
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
Diffstat (limited to 'PerformancePkg/Library/TscTimerLib/TscTimerLibInternal.h')
-rw-r--r-- | PerformancePkg/Library/TscTimerLib/TscTimerLibInternal.h | 55 |
1 files changed, 55 insertions, 0 deletions
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.<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 _TSC_TIMER_LIB_INTERNAL_H_
+#define _TSC_TIMER_LIB_INTERNAL_H_
+
+#include <Ich/GenericIch.h>
+
+#include <Library/TimerLib.h>
+#include <Library/BaseLib.h>
+#include <Library/IoLib.h>
+#include <Library/PciLib.h>
+#include <Library/PcdLib.h>
+
+/** 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
|