35,9 → 35,13 |
unsigned char use_tsc = 0; //Enable the TSC counter mode |
unsigned char use_cmos = 0; //Enable the RTC correction |
|
//Max single delta_clk_per_msec increment = clk_per_msec / MAX_DIV_INK; |
#define MAX_DIV_INK 30000 |
//Max single delta_clk_per_msec increment |
#define MAX_DELTA_INK 10 |
|
//Max delta_clk_per_msec before declare lost |
//the CMOS sync |
#define MAX_DELTA_TOT 10000 |
|
signed long long init_tsc; |
signed long long init_nsec; //Warp around 292 years !! |
signed long long clk_per_msec; |
57,8 → 61,6 |
|
signed long long actual_tsc; |
|
signed long max_dcms = clk_per_msec / MAX_DIV_INK; |
|
signed long long dt,dn; |
signed long delta_clk_per_msec; |
|
91,18 → 93,24 |
//clk_per_msec adjustment |
if (delta_clk_per_msec < 0) { |
|
if (delta_clk_per_msec > -max_dcms) |
if (delta_clk_per_msec > -MAX_DELTA_INK) |
clk_per_msec += delta_clk_per_msec; |
else |
clk_per_msec -= max_dcms; |
clk_per_msec -= MAX_DELTA_INK; |
} else { |
|
if (delta_clk_per_msec < max_dcms) |
if (delta_clk_per_msec < MAX_DELTA_INK) |
clk_per_msec += delta_clk_per_msec; |
else |
clk_per_msec += max_dcms; |
clk_per_msec += MAX_DELTA_INK; |
} |
|
if (delta_clk_per_msec > MAX_DELTA_TOT || delta_clk_per_msec < -MAX_DELTA_TOT) { |
message("Error: Delta_clk_per_msec |%ld| > %ld\n",\ |
(long)delta_clk_per_msec,(long)MAX_DELTA_TOT); |
ll_abort(10); |
} |
|
last_delta_clk_per_msec = delta_clk_per_msec; |
total_delta_clk_per_msec += delta_clk_per_msec; |
|