18#include <IndustryStandard/Pci.h>
21#include <Library/BaseLib.h>
23#include <Library/DebugLib.h>
24#include <Library/IoLib.h>
25#include <Library/PciLib.h>
26#include <Library/UefiBootServicesTableLib.h>
27#include <Library/TimerLib.h>
172 OUT UINT64 *StartValue, OPTIONAL
173 OUT UINT64 *EndValue OPTIONAL
176 if (StartValue != NULL) {
180 if (EndValue != NULL) {
181 *EndValue = 0xffffffffffffffffULL;
211 if (Frequency == 0) {
227 Shift =
MAX (0, HighBitSet64 (Remainder) - 33);
228 Remainder =
RShiftU64 (Remainder, (UINTN)Shift);
229 Frequency =
RShiftU64 (Frequency, (UINTN)Shift);
UINT64 OcGetTSCFrequency(VOID)
UINT64 EFIAPI GetTimeInNanoSecond(IN UINT64 Ticks)
UINT64 EFIAPI GetPerformanceCounterProperties(OUT UINT64 *StartValue, OPTIONAL OUT UINT64 *EndValue OPTIONAL)
EFI_STATUS EFIAPI OcTimerLibConstructor(VOID)
STATIC VOID InternalCpuDelay(IN UINT64 Delay)
UINT64 EFIAPI GetTscFrequency(VOID)
UINT64 EFIAPI GetPerformanceCounter(VOID)
UINTN EFIAPI MicroSecondDelay(IN UINTN MicroSeconds)
STATIC UINT64 mTscFrequency
UINTN EFIAPI NanoSecondDelay(IN UINTN NanoSeconds)
UINT64 EFIAPI MultU64x64(IN UINT64 Multiplicand, IN UINT64 Multiplier)
UINT64 EFIAPI RShiftU64(IN UINT64 Operand, IN UINTN Count)
UINT64 EFIAPI MultU64x32(IN UINT64 Multiplicand, IN UINT32 Multiplier)
UINT64 EFIAPI DivU64x64Remainder(IN UINT64 Dividend, IN UINT64 Divisor, OUT UINT64 *Remainder OPTIONAL)
UINT64 EFIAPI AsmReadTsc(VOID)
VOID EFIAPI CpuPause(VOID)
#define DivU64x32(x, y, z)