From 4ae5165ce62a930c531af098c3e8676840c18123 Mon Sep 17 00:00:00 2001 From: lzeng14 Date: Wed, 17 Aug 2011 07:30:34 +0000 Subject: Allocate memory buffer to store TscFrequency, and InstallConfigurationTable with the pointer to this buffer. Signed-off-by: lzeng14 Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12151 6f19259b-4bc3-4df7-8a09-765794883524 --- PerformancePkg/Library/DxeTscTimerLib/DxeTscTimerLib.c | 17 +++++++++++------ .../Library/DxeTscTimerLib/DxeTscTimerLib.inf | 1 + 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'PerformancePkg') diff --git a/PerformancePkg/Library/DxeTscTimerLib/DxeTscTimerLib.c b/PerformancePkg/Library/DxeTscTimerLib/DxeTscTimerLib.c index 95f2655..3e7e025 100644 --- a/PerformancePkg/Library/DxeTscTimerLib/DxeTscTimerLib.c +++ b/PerformancePkg/Library/DxeTscTimerLib/DxeTscTimerLib.c @@ -38,6 +38,7 @@ #include #include #include +#include #include @@ -117,15 +118,19 @@ DxeTscTimerLibConstructor ( } EndTSC = AsmReadTsc(); // TSC value 1ms later - mTscFrequency = MultU64x32 ( - (EndTSC - StartTSC), // Number of TSC counts in 1ms - 1000 // Number of ms in a second - ); + Status = gBS->AllocatePool (EfiBootServicesData, sizeof (UINT64), &TscFrequency); + ASSERT_EFI_ERROR (Status); + + *TscFrequency = MultU64x32 ( + (EndTSC - StartTSC), // Number of TSC counts in 1ms + 1000 // Number of ms in a second + ); // - // mTscFrequency is now equal to the number of TSC counts per second, install system configuration table for it. + // TscFrequency now points to the number of TSC counts per second, install system configuration table for it. // - gBS->InstallConfigurationTable (&gEfiTscFrequencyGuid, &mTscFrequency); + gBS->InstallConfigurationTable (&gEfiTscFrequencyGuid, TscFrequency); + mTscFrequency = *TscFrequency; return EFI_SUCCESS; } diff --git a/PerformancePkg/Library/DxeTscTimerLib/DxeTscTimerLib.inf b/PerformancePkg/Library/DxeTscTimerLib/DxeTscTimerLib.inf index 28978d7..8d2e6cf 100644 --- a/PerformancePkg/Library/DxeTscTimerLib/DxeTscTimerLib.inf +++ b/PerformancePkg/Library/DxeTscTimerLib/DxeTscTimerLib.inf @@ -49,6 +49,7 @@ IoLib BaseLib UefiLib + DebugLib [Guids] gEfiTscFrequencyGuid ## CONSUMES ## System Configuration Table -- cgit v1.1