\r
**/\r
\r
-\r
#include <Base.h>\r
#include <Library/ArmLib.h>\r
#include <Library/BaseLib.h>\r
#include <Library/PcdLib.h>\r
#include <Library/ArmGenericTimerCounterLib.h>\r
\r
-#define TICKS_PER_MICRO_SEC (PcdGet32 (PcdArmArchTimerFreqInHz)/1000000U)\r
+#define TICKS_PER_MICRO_SEC (PcdGet32 (PcdArmArchTimerFreqInHz)/1000000U)\r
\r
// Select appropriate multiply function for platform architecture.\r
#ifdef MDE_CPU_ARM\r
-#define MULT_U64_X_N MultU64x32\r
+#define MULT_U64_X_N MultU64x32\r
#else\r
-#define MULT_U64_X_N MultU64x64\r
+#define MULT_U64_X_N MultU64x64\r
#endif\r
\r
-\r
RETURN_STATUS\r
EFIAPI\r
TimerConstructor (\r
// Check if the ARM Generic Timer Extension is implemented.\r
//\r
if (ArmIsArchTimerImplemented ()) {\r
-\r
//\r
// Check if Architectural Timer frequency is pre-determined by the platform\r
// (ie. nonzero).\r
//\r
ASSERT (TICKS_PER_MICRO_SEC);\r
\r
-#ifdef MDE_CPU_ARM\r
+ #ifdef MDE_CPU_ARM\r
//\r
// Only set the frequency for ARMv7. We expect the secure firmware to\r
// have already done it.\r
if (ArmHasSecurityExtensions ()) {\r
ArmGenericTimerSetTimerFreq (PcdGet32 (PcdArmArchTimerFreqInHz));\r
}\r
-#endif\r
+\r
+ #endif\r
}\r
\r
//\r
// If the reset value (0) is returned, just ASSERT.\r
//\r
ASSERT (ArmGenericTimerGetTimerFreq () != 0);\r
-\r
} else {\r
DEBUG ((DEBUG_ERROR, "ARM Architectural Timer is not available in the CPU, hence this library cannot be used.\n"));\r
ASSERT (0);\r
GetPlatformTimerFreq (\r
)\r
{\r
- UINTN TimerFreq;\r
+ UINTN TimerFreq;\r
\r
TimerFreq = PcdGet32 (PcdArmArchTimerFreqInHz);\r
if (TimerFreq == 0) {\r
TimerFreq = ArmGenericTimerGetTimerFreq ();\r
}\r
+\r
return TimerFreq;\r
}\r
\r
-\r
/**\r
Stalls the CPU for the number of microseconds specified by MicroSeconds.\r
\r
UINTN\r
EFIAPI\r
MicroSecondDelay (\r
- IN UINTN MicroSeconds\r
+ IN UINTN MicroSeconds\r
)\r
{\r
- UINT64 TimerTicks64;\r
- UINT64 SystemCounterVal;\r
+ UINT64 TimerTicks64;\r
+ UINT64 SystemCounterVal;\r
\r
// Calculate counter ticks that represent requested delay:\r
// = MicroSeconds x TICKS_PER_MICRO_SEC\r
return MicroSeconds;\r
}\r
\r
-\r
/**\r
Stalls the CPU for at least the given number of nanoseconds.\r
\r
UINTN\r
EFIAPI\r
NanoSecondDelay (\r
- IN UINTN NanoSeconds\r
+ IN UINTN NanoSeconds\r
)\r
{\r
UINTN MicroSeconds;\r
\r
// Round up to 1us Tick Number\r
- MicroSeconds = NanoSeconds / 1000;\r
+ MicroSeconds = NanoSeconds / 1000;\r
MicroSeconds += ((NanoSeconds % 1000) == 0) ? 0 : 1;\r
\r
MicroSecondDelay (MicroSeconds);\r
UINT64\r
EFIAPI\r
GetPerformanceCounterProperties (\r
- OUT UINT64 *StartValue OPTIONAL,\r
- OUT UINT64 *EndValue OPTIONAL\r
+ OUT UINT64 *StartValue OPTIONAL,\r
+ OUT UINT64 *EndValue OPTIONAL\r
)\r
{\r
if (StartValue != NULL) {\r
// Timer starts at 0\r
- *StartValue = (UINT64)0ULL ;\r
+ *StartValue = (UINT64)0ULL;\r
}\r
\r
if (EndValue != NULL) {\r
UINT64\r
EFIAPI\r
GetTimeInNanoSecond (\r
- IN UINT64 Ticks\r
+ IN UINT64 Ticks\r
)\r
{\r
UINT64 NanoSeconds;\r
DivU64x32Remainder (\r
Ticks,\r
TimerFreq,\r
- &Remainder),\r
+ &Remainder\r
+ ),\r
1000000000U\r
);\r
\r
//\r
NanoSeconds += DivU64x32 (\r
MULT_U64_X_N (\r
- (UINT64) Remainder,\r
- 1000000000U),\r
+ (UINT64)Remainder,\r
+ 1000000000U\r
+ ),\r
TimerFreq\r
);\r
\r