From a416984c5cbbd3aeffd1260eaa3e8ff9fdbc4001 Mon Sep 17 00:00:00 2001 From: klu2 Date: Fri, 13 Oct 2006 07:58:14 +0000 Subject: [PATCH] Add Nt32TimeLibNull library instance for Nt32 platform. It is used by PeiMain module for computing performance counter. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1741 6f19259b-4bc3-4df7-8a09-765794883524 --- EdkNt32Pkg/EdkNt32Pkg.spd | 1 + .../Library/Nt32TimerLibNull/Nt32TimerLib.c | 113 ++++++++++++++++++ .../Library/Nt32TimerLibNull/Nt32TimerLib.msa | 47 ++++++++ EdkNt32Pkg/Nt32.fpd | 49 ++++---- 4 files changed, 186 insertions(+), 24 deletions(-) create mode 100644 EdkNt32Pkg/Library/Nt32TimerLibNull/Nt32TimerLib.c create mode 100644 EdkNt32Pkg/Library/Nt32TimerLibNull/Nt32TimerLib.msa diff --git a/EdkNt32Pkg/EdkNt32Pkg.spd b/EdkNt32Pkg/EdkNt32Pkg.spd index a9270e07b9..123819be22 100644 --- a/EdkNt32Pkg/EdkNt32Pkg.spd +++ b/EdkNt32Pkg/EdkNt32Pkg.spd @@ -105,6 +105,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. Dxe/WinNtThunk/Cpu/Cpu.msa Dxe/WinNtThunk/WinNtThunk/WinNtThunk.msa Library/DxeWinNtLib/DxeWinNtLib.msa + Library/Nt32TimerLibNull/Nt32TimerLib.msa Library/EdkGenericBdsLib/EdkGenericBdsLib.msa Library/EdkNt32PeiPeCoffGetEntryPointLib/EdkNt32PeiPeCoffGetEntryPointLib.msa Library/Nt32PeCoffLoaderLib/Nt32PeCoffLoaderLib.msa diff --git a/EdkNt32Pkg/Library/Nt32TimerLibNull/Nt32TimerLib.c b/EdkNt32Pkg/Library/Nt32TimerLibNull/Nt32TimerLib.c new file mode 100644 index 0000000000..40a1a41eb8 --- /dev/null +++ b/EdkNt32Pkg/Library/Nt32TimerLibNull/Nt32TimerLib.c @@ -0,0 +1,113 @@ +/** @file + Timer Library functions for Nt32 platform. + + @bug Still no complete implementation for time library function for Nt32 platform. + + Copyright (c) 2006, 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. + + Module Name: x86TimerLib.c + +**/ + +/** + Stalls the CPU for at least the given number of microseconds. + + Stalls the CPU for the number of microseconds specified by MicroSeconds. + + @param MicroSeconds The minimum number of microseconds to delay. + + @return MicroSeconds + +**/ +UINTN +EFIAPI +MicroSecondDelay ( + IN UINTN MicroSeconds + ) +{ + ASSERT (FALSE); + return MicroSeconds; +} + +/** + Stalls the CPU for at least the given number of nanoseconds. + + Stalls the CPU for the number of nanoseconds specified by NanoSeconds. + + @param NanoSeconds The minimum number of nanoseconds to delay. + + @return NanoSeconds + +**/ +UINTN +EFIAPI +NanoSecondDelay ( + IN UINTN NanoSeconds + ) +{ + ASSERT (FALSE); + return 0; +} + +/** + Retrieves the current value of a 64-bit free running performance counter. + + Retrieves the current value of a 64-bit free running performance counter. The + counter can either count up by 1 or count down by 1. If the physical + performance counter counts by a larger increment, then the counter values + must be translated. The properties of the counter can be retrieved from + GetPerformanceCounterProperties(). + + @return The current value of the free running performance counter. + +**/ +UINT64 +EFIAPI +GetPerformanceCounter ( + VOID + ) +{ + ASSERT (FALSE); + return 0; +} + +/** + Retrieves the 64-bit frequency in Hz and the range of performance counter + values. + + If StartValue is not NULL, then the value that the performance counter starts + with immediately after is it rolls over is returned in StartValue. If + EndValue is not NULL, then the value that the performance counter end with + immediately before it rolls over is returned in EndValue. The 64-bit + frequency of the performance counter in Hz is always returned. If StartValue + is less than EndValue, then the performance counter counts up. If StartValue + is greater than EndValue, then the performance counter counts down. For + example, a 64-bit free running counter that counts up would have a StartValue + of 0 and an EndValue of 0xFFFFFFFFFFFFFFFF. A 24-bit free running counter + that counts down would have a StartValue of 0xFFFFFF and an EndValue of 0. + + @param StartValue The value the performance counter starts with when it + rolls over. + @param EndValue The value that the performance counter ends with before + it rolls over. + + @return The frequency in Hz. + +**/ +UINT64 +EFIAPI +GetPerformanceCounterProperties ( + OUT UINT64 *StartValue, OPTIONAL + OUT UINT64 *EndValue OPTIONAL + ) +{ + ASSERT (FALSE); + return 0; +} diff --git a/EdkNt32Pkg/Library/Nt32TimerLibNull/Nt32TimerLib.msa b/EdkNt32Pkg/Library/Nt32TimerLibNull/Nt32TimerLib.msa new file mode 100644 index 0000000000..183c465c3a --- /dev/null +++ b/EdkNt32Pkg/Library/Nt32TimerLibNull/Nt32TimerLib.msa @@ -0,0 +1,47 @@ + + + + Nt32TimerLib + BASE + 3813bb9b-808b-4dcb-b9a3-ea47bd9324c0 + 1.0 + Component description file for Nt32Timer Library + Timer Library provide API of TimerLib library class for Nt32 platform, + Now this library do not impletement functionality completely. + Copyright (c) 2006, 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. + FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 + + + IA32 X64 IPF EBC + false + Nt32TimerLib + + + + TimerLib + + + BaseLib + + + DebugLib + + + + Nt32TimerLib.c + + + + + + + EFI_SPECIFICATION_VERSION 0x00020000 + EDK_RELEASE_VERSION 0x00020000 + + \ No newline at end of file diff --git a/EdkNt32Pkg/Nt32.fpd b/EdkNt32Pkg/Nt32.fpd index 4f4471e0df..e41684fa35 100644 --- a/EdkNt32Pkg/Nt32.fpd +++ b/EdkNt32Pkg/Nt32.fpd @@ -5,15 +5,15 @@ eb216561-961f-47ee-9ef9-ca426ef547c2 0.3 EFI/Framework Emulation Platform - The Emulation Platform can be used to debug individual modules, prior to creating + The Emulation Platform can be used to debug individual modules, prior to creating a real platform. This also provides an example for how an FPD is created. Copyright (c) 2006, 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, + 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. FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052 @@ -243,8 +243,9 @@ - + + @@ -7209,22 +7210,22 @@ - @REM - @REM Copyright (c) 2006, Intel Corporation - @REM All rights reserved. This program and the accompanying materials - @REM are licensed and made available under the terms and conditions of the BSD License - @REM which accompanies this distribution. The full text of the license may be found at - @REM http://opensource.org/licenses/bsd-license.php - @REM - @REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - @REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - @REM - - @echo off - pushd . - cd ${SecMainPath} - SecMain.exe - popd + @REM + @REM Copyright (c) 2006, Intel Corporation + @REM All rights reserved. This program and the accompanying materials + @REM are licensed and made available under the terms and conditions of the BSD License + @REM which accompanies this distribution. The full text of the license may be found at + @REM http://opensource.org/licenses/bsd-license.php + @REM + @REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + @REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + @REM + + @echo off + pushd . + cd ${SecMainPath} + SecMain.exe + popd @echo on \ No newline at end of file