]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c
Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing...
[mirror_edk2.git] / MdePkg / Library / SecPeiDxeTimerLibCpu / IpfTimerLib.c
diff --git a/MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c b/MdePkg/Library/SecPeiDxeTimerLibCpu/IpfTimerLib.c
deleted file mode 100644 (file)
index 2e51170..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/** @file\r
-  Timer Library functions built upon ITC on IPF.\r
-\r
-  Copyright (c) 2006 - 2007, Intel Corporation<BR>\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
-\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
-  Module Name:  IpfTimerLib.c\r
-\r
-**/\r
-\r
-\r
-\r
-\r
-/**\r
-  Performs a delay measured as number of ticks.\r
-\r
-  An internal function to perform a delay measured as number of ticks. It's\r
-  invoked by MicroSecondDelay() and NanoSecondDelay().\r
-\r
-  @param  Delay Number of ticks to delay.\r
-\r
-**/\r
-STATIC\r
-VOID\r
-InternalIpfDelay (\r
-  IN      INT64                     Delay\r
-  )\r
-{\r
-  INT64                             Ticks;\r
-\r
-  //\r
-  // The target timer count is calculated here\r
-  //\r
-  Ticks = (INT64)AsmReadItc () + Delay;\r
-\r
-  //\r
-  // Wait until time out\r
-  // Delay > 2^63 could not be handled by this function\r
-  // Timer wrap-arounds are handled correctly by this function\r
-  //\r
-  while (Ticks - (INT64)AsmReadItc() >= 0);\r
-}\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
-\r
-**/\r
-UINTN\r
-EFIAPI\r
-MicroSecondDelay (\r
-  IN      UINTN                     MicroSeconds\r
-  )\r
-{\r
-  InternalIpfDelay (\r
-    GetPerformanceCounterProperties (NULL, NULL) *\r
-    MicroSeconds /\r
-    1000000\r
-    );\r
-  return MicroSeconds;\r
-}\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
-\r
-**/\r
-UINTN\r
-EFIAPI\r
-NanoSecondDelay (\r
-  IN      UINTN                     NanoSeconds\r
-  )\r
-{\r
-  InternalIpfDelay (\r
-    GetPerformanceCounterProperties (NULL, NULL) *\r
-    NanoSeconds /\r
-    1000000000\r
-    );\r
-  return NanoSeconds;\r
-}\r
-\r
-/**\r
-  Retrieves the current value of a 64-bit free running performance counter.\r
-\r
-  Retrieves the current value of a 64-bit free running performance counter. The\r
-  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
-  GetPerformanceCounterProperties().\r
-\r
-  @return The current value of the free running performance counter.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-GetPerformanceCounter (\r
-  VOID\r
-  )\r
-{\r
-  return AsmReadItc ();\r
-}\r
-\r
-/**\r
-  Retrieves the 64-bit frequency in Hz and the range of performance counter\r
-  values.\r
-\r
-  If StartValue is not NULL, then the value that the performance counter starts\r
-  with immediately after is it rolls over is returned in StartValue. If\r
-  EndValue is not NULL, then the value that the performance counter end with\r
-  immediately before it rolls over is returned in EndValue. The 64-bit\r
-  frequency of the performance counter in Hz is always returned. If StartValue\r
-  is less than EndValue, then the performance counter counts up. If StartValue\r
-  is greater than EndValue, then the performance counter counts down. For\r
-  example, a 64-bit free running counter that counts up would have a StartValue\r
-  of 0 and an EndValue of 0xFFFFFFFFFFFFFFFF. A 24-bit free running counter\r
-  that counts down would have a StartValue of 0xFFFFFF and an EndValue of 0.\r
-\r
-  @param  StartValue  The value the performance counter starts with when it\r
-                      rolls over.\r
-  @param  EndValue    The value that the performance counter ends with before\r
-                      it rolls over.\r
-\r
-  @return The frequency in Hz.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-GetPerformanceCounterProperties (\r
-  OUT      UINT64                    *StartValue,  OPTIONAL\r
-  OUT      UINT64                    *EndValue     OPTIONAL\r
-  )\r
-{\r
-  PAL_CALL_RETURN                   PalRet;\r
-  UINT64                            BaseFrequence;\r
-\r
-  PalRet = PalCallStatic (NULL, 13, 0, 0, 0);\r
-  ASSERT (PalRet.Status == 0);\r
-  BaseFrequence = PalRet.r9;\r
-\r
-  PalRet = PalCallStatic (NULL, 14, 0, 0, 0);\r
-  ASSERT (PalRet.Status == 0);\r
-\r
-  if (StartValue != NULL) {\r
-    *StartValue = 0;\r
-  }\r
-\r
-  if (EndValue != NULL) {\r
-    *EndValue = (UINT64)(-1);\r
-  }\r
-\r
-  return BaseFrequence * (PalRet.r11 >> 32) / (UINT32)PalRet.r11;\r
-}\r