timer.h 1.1 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3
/*
 *  include/asm-s390/timer.h
 *
4
 *  (C) Copyright IBM Corp. 2003,2006
L
Linus Torvalds 已提交
5 6 7 8 9 10 11 12
 *  Virtual CPU timer
 *
 *  Author: Jan Glauber (jang@de.ibm.com)
 */

#ifndef _ASM_S390_TIMER_H
#define _ASM_S390_TIMER_H

13 14
#ifdef __KERNEL__

L
Linus Torvalds 已提交
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
#include <linux/timer.h>

#define VTIMER_MAX_SLICE (0x7ffffffffffff000LL)

struct vtimer_list {
	struct list_head entry;

	int cpu;
	__u64 expires;
	__u64 interval;

	spinlock_t lock;
	unsigned long magic;

	void (*function)(unsigned long, struct pt_regs*);
	unsigned long data;
};

/* the offset value will wrap after ca. 71 years */
struct vtimer_queue {
	struct list_head list;
	spinlock_t lock;
	__u64 to_expire;	  /* current event expire time */
	__u64 offset;		  /* list offset to zero */
	__u64 idle;		  /* temp var for idle */
};

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);
extern int del_virt_timer(struct vtimer_list *timer);

48 49 50
#endif /* __KERNEL__ */

#endif /* _ASM_S390_TIMER_H */