}
cur_timer = select_timer();
+ printk(KERN_INFO "Using %s for high-res timesource\n",cur_timer->name);
+
time_init_hook();
}
#endif
wall_to_monotonic.tv_nsec = -xtime.tv_nsec;
cur_timer = select_timer();
+ printk(KERN_INFO "Using %s for high-res timesource\n",cur_timer->name);
+
time_init_hook();
}
/* cyclone timer_opts struct */
struct timer_opts timer_cyclone = {
+ .name = "cyclone",
.init = init_cyclone,
.mark_offset = mark_offset_cyclone,
.get_offset = get_offset_cyclone,
/* tsc timer_opts struct */
struct timer_opts timer_hpet = {
+ .name = "hpet",
.init = init_hpet,
.mark_offset = mark_offset_hpet,
.get_offset = get_offset_hpet,
/* tsc timer_opts struct */
struct timer_opts timer_none = {
+ .name = "none",
.init = init_none,
.mark_offset = mark_offset_none,
.get_offset = get_offset_none,
/* tsc timer_opts struct */
struct timer_opts timer_pit = {
+ .name = "pit",
.init = init_pit,
.mark_offset = mark_offset_pit,
.get_offset = get_offset_pit,
/* tsc timer_opts struct */
struct timer_opts timer_tsc = {
+ .name = "tsc",
.init = init_tsc,
.mark_offset = mark_offset_tsc,
.get_offset = get_offset_tsc,
* last timer intruupt.
*/
struct timer_opts{
+ char* name;
int (*init)(char *override);
void (*mark_offset)(void);
unsigned long (*get_offset)(void);