00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __ia32_tsc_h
00009 #define __ia32_tsc_h
00010
00011 #include <tsc.h>
00012
00013 __BEGIN_SYS
00014
00015 class IA32_TSC: public TSC_Common
00016 {
00017 private:
00018 typedef Traits<IA32_TSC> Traits;
00019 static const Type_Id TYPE = Type<IA32_TSC>::TYPE;
00020
00021 public:
00022 IA32_TSC() {}
00023 ~IA32_TSC() {}
00024
00025 static Hertz frequency() { return __SYS(Traits)<IA32>::CLOCK; }
00026 static Time_Stamp time_stamp() {
00027 Time_Stamp ts;
00028 ASMV("rdtsc" : "=A" (ts) : );
00029 return ts;
00030 }
00031
00032 static int init(System_Info * si);
00033 };
00034
00035 __END_SYS
00036
00037 #endif