2005-04-16 15:20:36 -07:00
/*
* include / asm - s390 / timer . h
*
2006-02-03 03:03:50 -08:00
* ( C ) Copyright IBM Corp . 2003 , 2006
2005-04-16 15:20:36 -07:00
* Virtual CPU timer
*
* Author : Jan Glauber ( jang @ de . ibm . com )
*/
# ifndef _ASM_S390_TIMER_H
# define _ASM_S390_TIMER_H
# include <linux/timer.h>
# define VTIMER_MAX_SLICE (0x7ffffffffffff000LL)
struct vtimer_list {
struct list_head entry ;
int cpu ;
__u64 expires ;
__u64 interval ;
2006-10-11 15:31:26 +02:00
void ( * function ) ( unsigned long ) ;
2005-04-16 15:20:36 -07:00
unsigned long data ;
} ;
2008-12-31 15:11:41 +01:00
/* the vtimer value will wrap after ca. 71 years */
2005-04-16 15:20:36 -07:00
struct vtimer_queue {
struct list_head list ;
spinlock_t lock ;
2008-12-31 15:11:41 +01:00
__u64 timer ; /* last programmed timer */
__u64 elapsed ; /* elapsed time of timer expire values */
2012-03-11 11:59:27 -04:00
__u64 idle_enter ; /* cpu timer on idle enter */
__u64 idle_exit ; /* cpu timer on idle exit */
2005-04-16 15:20:36 -07:00
} ;
extern void init_virt_timer ( struct vtimer_list * timer ) ;
extern void add_virt_timer ( void * new ) ;
extern void add_virt_timer_periodic ( void * new ) ;
extern int mod_virt_timer ( struct vtimer_list * timer , __u64 expires ) ;
2009-04-14 15:36:20 +02:00
extern int mod_virt_timer_periodic ( struct vtimer_list * timer , __u64 expires ) ;
2005-04-16 15:20:36 -07:00
extern int del_virt_timer ( struct vtimer_list * timer ) ;
2007-02-05 21:16:47 +01:00
extern void init_cpu_vtimer ( void ) ;
extern void vtime_init ( void ) ;
2008-12-31 15:11:41 +01:00
extern void vtime_stop_cpu ( void ) ;
extern void vtime_start_leave ( void ) ;
2008-07-14 09:59:06 +02:00
2006-02-03 03:03:50 -08:00
# endif /* _ASM_S390_TIMER_H */