]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Library/TimerLib.h
MdePkg and MdeModulePkg Pcd: Add the new EFI_GET_PCD_INFO_PROTOCOL and EFI_GET_PCD_IN...
[mirror_edk2.git] / MdePkg / Include / Library / TimerLib.h
index 3959396e205f5729fe42a2a10c6f25103627469a..ecc3ad3ff79ec7b69a7004f667d12035126f0a0d 100644 (file)
@@ -1,14 +1,14 @@
 /** @file\r
-  Timer Library Functions.\r
+  Provides calibrated delay and performance counter services.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
+Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
 \r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
 #define __TIMER_LIB__\r
 \r
 /**\r
+  Stalls the CPU for at least the given number of microseconds.\r
+\r
   Stalls the CPU for the number of microseconds specified by MicroSeconds.\r
 \r
   @param  MicroSeconds  The minimum number of microseconds to delay.\r
 \r
-  @return MicroSeconds\r
+  @return The value of MicroSeconds inputted.\r
 \r
 **/\r
 UINTN\r
@@ -30,11 +32,13 @@ MicroSecondDelay (
   );\r
 \r
 /**\r
+  Stalls the CPU for at least the given number of nanoseconds.\r
+\r
   Stalls the CPU for the number of nanoseconds specified by NanoSeconds.\r
 \r
   @param  NanoSeconds The minimum number of nanoseconds to delay.\r
 \r
-  @return NanoSeconds\r
+  @return The value of NanoSeconds inputted.\r
 \r
 **/\r
 UINTN\r
@@ -44,7 +48,8 @@ NanoSecondDelay (
   );\r
 \r
 /**\r
-  Retrieves the current value of a 64-bit free running performance counter. \r
+  Retrieves the current value of a 64-bit free running performance counter.\r
+\r
   The counter can either count up by 1 or count down by 1. If the physical\r
   performance counter counts by a larger increment, then the counter values\r
   must be translated. The properties of the counter can be retrieved from\r
@@ -89,4 +94,21 @@ GetPerformanceCounterProperties (
   OUT      UINT64                    *EndValue     OPTIONAL\r
   );\r
 \r
+/**\r
+  Converts elapsed ticks of performance counter to time in nanoseconds.\r
+\r
+  This function converts the elapsed ticks of running performance counter to\r
+  time value in unit of nanoseconds.\r
+\r
+  @param  Ticks     The number of elapsed ticks of running performance counter.\r
+\r
+  @return The elapsed time in nanoseconds.\r
+\r
+**/\r
+UINT64\r
+EFIAPI\r
+GetTimeInNanoSecond (\r
+  IN      UINT64                     Ticks\r
+  );\r
+\r
 #endif\r