X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=include%2Fasm-i386%2Ftimer.h;h=40c54f69780e66ccd417f736816736a56851dce4;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=24381b8b53763754f477a3e867ce6e54abc8b149;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/include/asm-i386/timer.h b/include/asm-i386/timer.h index 24381b8b5..40c54f697 100644 --- a/include/asm-i386/timer.h +++ b/include/asm-i386/timer.h @@ -1,5 +1,6 @@ #ifndef _ASMi386_TIMER_H #define _ASMi386_TIMER_H +#include /** * struct timer_ops - used to define a timer source @@ -15,18 +16,22 @@ * timer. * @delay: delays this many clock cycles. */ -struct timer_opts{ +struct timer_opts { char* name; - int (*init)(char *override); void (*mark_offset)(void); unsigned long (*get_offset)(void); unsigned long long (*monotonic_clock)(void); void (*delay)(unsigned long); }; +struct init_timer_opts { + int (*init)(char *override); + struct timer_opts *opts; +}; + #define TICK_SIZE (tick_nsec / 1000) -extern struct timer_opts* select_timer(void); +extern struct timer_opts* __init select_timer(void); extern void clock_fallback(void); void setup_pit_timer(void); @@ -40,19 +45,20 @@ extern int timer_ack; /* list of externed timers */ extern struct timer_opts timer_none; extern struct timer_opts timer_pit; -extern struct timer_opts timer_tsc; +extern struct init_timer_opts timer_pit_init; +extern struct init_timer_opts timer_tsc_init; #ifdef CONFIG_X86_CYCLONE_TIMER -extern struct timer_opts timer_cyclone; +extern struct init_timer_opts timer_cyclone_init; #endif extern unsigned long calibrate_tsc(void); extern void init_cpu_khz(void); #ifdef CONFIG_HPET_TIMER -extern struct timer_opts timer_hpet; +extern struct init_timer_opts timer_hpet_init; extern unsigned long calibrate_tsc_hpet(unsigned long *tsc_hpet_quotient_ptr); #endif #ifdef CONFIG_X86_PM_TIMER -extern struct timer_opts timer_pmtmr; +extern struct init_timer_opts timer_pmtmr_init; #endif #endif