5 EXTENSION class Timer_tick
8 static Static_object<Timer_tick> _glbl_timer;
15 Static_object<Timer_tick> Timer_tick::_glbl_timer;
18 Timer_tick::setup(unsigned cpu)
20 // all CPUs use the same timer IRQ, so initialize just on CPU 0
24 _glbl_timer.construct(Any_cpu);
25 if (!allocate_irq(_glbl_timer, Timer::irq()))
26 panic("Could not allocate scheduling IRQ %d\n", Timer::irq());
28 _glbl_timer->set_mode(Timer::irq_mode());
33 Timer_tick::enable(unsigned)
35 _glbl_timer->chip()->unmask(_glbl_timer->pin());
40 Timer_tick::disable(unsigned)
42 _glbl_timer->chip()->mask(_glbl_timer->pin());
45 PUBLIC inline NEEDS["timer.h"]