| #ifndef __ASM_SH_TIMER_H | 
 | #define __ASM_SH_TIMER_H | 
 |  | 
 | #include <linux/sysdev.h> | 
 | #include <linux/clocksource.h> | 
 | #include <cpu/timer.h> | 
 |  | 
 | struct sys_timer_ops { | 
 | 	int (*init)(void); | 
 | 	int (*start)(void); | 
 | 	int (*stop)(void); | 
 | 	cycle_t (*read)(void); | 
 | #ifndef CONFIG_GENERIC_TIME | 
 | 	unsigned long (*get_offset)(void); | 
 | #endif | 
 | }; | 
 |  | 
 | 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, cmt_timer, mtu2_timer; | 
 | extern struct sys_timer *sys_timer; | 
 |  | 
 | #ifndef CONFIG_GENERIC_TIME | 
 | static inline unsigned long get_timer_offset(void) | 
 | { | 
 | 	return sys_timer->ops->get_offset(); | 
 | } | 
 | #endif | 
 |  | 
 | /* arch/sh/kernel/timers/timer.c */ | 
 | struct sys_timer *get_sys_timer(void); | 
 |  | 
 | /* arch/sh/kernel/time.c */ | 
 | void handle_timer_tick(void); | 
 | extern unsigned long sh_hpt_frequency; | 
 |  | 
 | #endif /* __ASM_SH_TIMER_H */ |