void local_apic_timer_init(void) { local_apic_timer_calibrate(128); /* set periodic mode (set bit to 1) */ local_apic->lvt_timer.timer_mode |= (1 << 0); /* enable timer */ local_apic_timer_enable(); }
static void local_apic_timer_init(uint8_t vector) { apic_lvt_timer_t lvt_timer=local_apic->lvt_timer; i8254_suspend(); /* suspend general intel timer - bye bye, simple and pretty one, welcome to apic ...*/ /* calibrate timer delimeter */ __local_apic_timer_calibrate(16); /*calibrate to hz*/ local_apic_timer_calibrate(1000); /* setup timer vector */ lvt_timer.vector=vector; /* set periodic mode (set bit to 1) */ lvt_timer.timer_mode = 0x1; /* enable timer */ lvt_timer.mask=0x0; local_apic->lvt_timer.reg=lvt_timer.reg; ar_registerInterrupt(LOCAL_TIMER_CPU_IRQ_VEC, &timer_callback, "APICtimer"); }