| #ifndef __ASM_SH_TIMER_H | |
| #define __ASM_SH_TIMER_H | |
| #include <linux/sysdev.h> | |
| #include <asm/cpu/timer.h> | |
| struct sys_timer_ops { | |
| int (*init)(void); | |
| unsigned long (*get_offset)(void); | |
| unsigned long (*get_frequency)(void); | |
| }; | |
| struct sys_timer { | |
| const char *name; | |
| struct sys_device dev; | |
| struct sys_timer_ops *ops; | |
| }; | |
| #define TICK_SIZE (tick_nsec / 1000) | |
| extern struct sys_timer tmu_timer; | |
| extern struct sys_timer *sys_timer; | |
| static inline unsigned long get_timer_offset(void) | |
| { | |
| return sys_timer->ops->get_offset(); | |
| } | |
| static inline unsigned long get_timer_frequency(void) | |
| { | |
| return sys_timer->ops->get_frequency(); | |
| } | |
| /* arch/sh/kernel/timers/timer.c */ | |
| struct sys_timer *get_sys_timer(void); | |
| /* arch/sh/kernel/time.c */ | |
| void handle_timer_tick(struct pt_regs *); | |
| #endif /* __ASM_SH_TIMER_H */ | |