Files
0ad/source/lib/sysdep/win/whrt/qpc.h
T
janwas f331b7313d fix very very insidious bug with mapping physical memory (TLB corruption). fix weirdness reported by michael (underlying cause: using cpu_ClockFrequency instead of wcpu_*; that made the timer run at freq=0)
mahaf: now disabled on Win2k because we can't prevent the TLB bug there.
removed the CopyPhysical API.
wutil: allow querying windows version via number

View: fix warning

This was SVN commit r5169.
2007-06-12 23:29:27 +00:00

55 lines
1.2 KiB
C++

/**
* =========================================================================
* File : qpc.h
* Project : 0 A.D.
* Description : Timer implementation using QueryPerformanceCounter
* =========================================================================
*/
// license: GPL; see lib/license.txt
#ifndef INCLUDED_QPC
#define INCLUDED_QPC
#include "counter.h"
class CounterQPC : public ICounter
{
public:
CounterQPC()
: m_frequency(-1)
{
}
virtual const char* Name() const
{
return "QPC";
}
virtual LibError Activate();
virtual void Shutdown();
virtual bool IsSafe() const;
virtual u64 Counter() const;
/**
* WHRT uses this to ensure the counter (running at nominal frequency)
* doesn't overflow more than once during CALIBRATION_INTERVAL_MS.
**/
virtual uint CounterBits() const;
/**
* initial measurement of the tick rate. not necessarily correct
* (e.g. when using TSC: wcpu_ClockFrequency isn't exact).
**/
virtual double NominalFrequency() const;
private:
// used in several places and QPF is a bit slow+cumbersome.
// (i64 allows easier conversion to double)
i64 m_frequency;
};
#endif // #ifndef INCLUDED_QPC