/** * Gets the raw cpu tick from current virtual time. * * @param pVM The cross context VM structure. * @param fCheckTimers Whether to check timers. */ DECLINLINE(uint64_t) tmCpuTickGetRawVirtual(PVM pVM, bool fCheckTimers) { uint64_t u64; if (fCheckTimers) u64 = TMVirtualSyncGet(pVM); else u64 = TMVirtualSyncGetNoCheck(pVM); return ASMMultU64ByU32DivByU32(u64, pVM->tm.s.cTSCTicksPerSecond, TMCLOCK_FREQ_VIRTUAL); }
/** * Gets the raw cpu tick from current virtual time. */ DECLINLINE(uint64_t) tmCpuTickGetRawVirtual(PVM pVM, bool fCheckTimers) { uint64_t u64; if (fCheckTimers) u64 = TMVirtualSyncGet(pVM); else u64 = TMVirtualSyncGetNoCheck(pVM); if (u64 != TMCLOCK_FREQ_VIRTUAL) /* what's the use of this test, document! */ u64 = ASMMultU64ByU32DivByU32(u64, pVM->tm.s.cTSCTicksPerSecond, TMCLOCK_FREQ_VIRTUAL); return u64; }