144,6 → 144,7 |
{ |
extern unsigned int clk_opt_0,clk_opt_5; |
extern unsigned long long *ptr_init_tsc; |
extern struct timespec init_time; |
|
if (clk_opt_0 == 0) { |
NULL_TIMESPEC(tspec); |
165,6 → 166,13 |
: "D" (ptr_init_tsc), "b" (clk_opt_0), "c" (clk_opt_5) |
: "edx"); |
|
if (init_time.tv_sec != 0 || init_time.tv_nsec != 0) { |
__asm__("divl %%ecx\n\t" |
"addl %%ebx,%%eax\n\t" |
:"=a" (tspec->tv_sec), "=d" (tspec->tv_nsec) |
:"a" (init_time.tv_nsec+tspec->tv_nsec), "b" (tspec->tv_sec+init_time.tv_sec), "c" (0x3B9ACA00), "d" (0)); |
}; |
|
} |
|
#define rdmsr(msr,val1,val2) \ |