xref: /openbmc/linux/arch/s390/include/asm/vtimer.h (revision 402e9228)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
227f6b416SMartin Schwidefsky /*
327f6b416SMartin Schwidefsky  *  Copyright IBM Corp. 2003, 2012
427f6b416SMartin Schwidefsky  *  Virtual CPU timer
527f6b416SMartin Schwidefsky  *
627f6b416SMartin Schwidefsky  *  Author(s): Jan Glauber <jan.glauber@de.ibm.com>
727f6b416SMartin Schwidefsky  */
827f6b416SMartin Schwidefsky 
927f6b416SMartin Schwidefsky #ifndef _ASM_S390_TIMER_H
1027f6b416SMartin Schwidefsky #define _ASM_S390_TIMER_H
1127f6b416SMartin Schwidefsky 
1227f6b416SMartin Schwidefsky #define VTIMER_MAX_SLICE (0x7fffffffffffffffULL)
1327f6b416SMartin Schwidefsky 
1427f6b416SMartin Schwidefsky struct vtimer_list {
1527f6b416SMartin Schwidefsky 	struct list_head entry;
1627f6b416SMartin Schwidefsky 	u64 expires;
1727f6b416SMartin Schwidefsky 	u64 interval;
1827f6b416SMartin Schwidefsky 	void (*function)(unsigned long);
1927f6b416SMartin Schwidefsky 	unsigned long data;
2027f6b416SMartin Schwidefsky };
2127f6b416SMartin Schwidefsky 
2227f6b416SMartin Schwidefsky extern void init_virt_timer(struct vtimer_list *timer);
2327f6b416SMartin Schwidefsky extern void add_virt_timer(struct vtimer_list *timer);
2427f6b416SMartin Schwidefsky extern void add_virt_timer_periodic(struct vtimer_list *timer);
2527f6b416SMartin Schwidefsky extern int mod_virt_timer(struct vtimer_list *timer, u64 expires);
2627f6b416SMartin Schwidefsky extern int mod_virt_timer_periodic(struct vtimer_list *timer, u64 expires);
2727f6b416SMartin Schwidefsky extern int del_virt_timer(struct vtimer_list *timer);
2827f6b416SMartin Schwidefsky extern void vtime_init(void);
2927f6b416SMartin Schwidefsky 
3027f6b416SMartin Schwidefsky #endif /* _ASM_S390_TIMER_H */
31