1/* 2 * include/asm-s390/timer.h 3 * 4 * (C) Copyright IBM Corp. 2003,2006 5 * Virtual CPU timer 6 * 7 * Author: Jan Glauber (jang@de.ibm.com) 8 */ 9 10#ifndef _ASM_S390_TIMER_H 11#define _ASM_S390_TIMER_H 12 13#ifdef __KERNEL__ 14 15#include <linux/timer.h> 16 17#define VTIMER_MAX_SLICE (0x7ffffffffffff000LL) 18 19struct vtimer_list { 20 struct list_head entry; 21 22 int cpu; 23 __u64 expires; 24 __u64 interval; 25 26 spinlock_t lock; 27 unsigned long magic; 28 29 void (*function)(unsigned long); 30 unsigned long data; 31}; 32 33/* the offset value will wrap after ca. 71 years */ 34struct vtimer_queue { 35 struct list_head list; 36 spinlock_t lock; 37 __u64 to_expire; /* current event expire time */ 38 __u64 offset; /* list offset to zero */ 39 __u64 idle; /* temp var for idle */ 40}; 41 42extern void init_virt_timer(struct vtimer_list *timer); 43extern void add_virt_timer(void *new); 44extern void add_virt_timer_periodic(void *new); 45extern int mod_virt_timer(struct vtimer_list *timer, __u64 expires); 46extern int del_virt_timer(struct vtimer_list *timer); 47 48extern void init_cpu_vtimer(void); 49extern void vtime_init(void); 50 51#endif /* __KERNEL__ */ 52 53#endif /* _ASM_S390_TIMER_H */ 54