1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright IBM Corp. 2003, 2012 4*4882a593Smuzhiyun * Virtual CPU timer 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * Author(s): Jan Glauber <jan.glauber@de.ibm.com> 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifndef _ASM_S390_TIMER_H 10*4882a593Smuzhiyun #define _ASM_S390_TIMER_H 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #define VTIMER_MAX_SLICE (0x7fffffffffffffffULL) 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun struct vtimer_list { 15*4882a593Smuzhiyun struct list_head entry; 16*4882a593Smuzhiyun u64 expires; 17*4882a593Smuzhiyun u64 interval; 18*4882a593Smuzhiyun void (*function)(unsigned long); 19*4882a593Smuzhiyun unsigned long data; 20*4882a593Smuzhiyun }; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun extern void init_virt_timer(struct vtimer_list *timer); 23*4882a593Smuzhiyun extern void add_virt_timer(struct vtimer_list *timer); 24*4882a593Smuzhiyun extern void add_virt_timer_periodic(struct vtimer_list *timer); 25*4882a593Smuzhiyun extern int mod_virt_timer(struct vtimer_list *timer, u64 expires); 26*4882a593Smuzhiyun extern int mod_virt_timer_periodic(struct vtimer_list *timer, u64 expires); 27*4882a593Smuzhiyun extern int del_virt_timer(struct vtimer_list *timer); 28*4882a593Smuzhiyun extern void vtime_init(void); 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #endif /* _ASM_S390_TIMER_H */ 31