mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-23 19:14:30 +08:00
9cfb9b3c3a
Distinguish the cputime of the idle process where idle is actually using cpu cycles from the cputime where idle is sleeping on an enabled wait psw. The former is accounted as system time, the later as idle time. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/*
|
|
* include/asm-s390/timer.h
|
|
*
|
|
* (C) Copyright IBM Corp. 2003,2006
|
|
* Virtual CPU timer
|
|
*
|
|
* Author: Jan Glauber (jang@de.ibm.com)
|
|
*/
|
|
|
|
#ifndef _ASM_S390_TIMER_H
|
|
#define _ASM_S390_TIMER_H
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
#include <linux/timer.h>
|
|
|
|
#define VTIMER_MAX_SLICE (0x7ffffffffffff000LL)
|
|
|
|
struct vtimer_list {
|
|
struct list_head entry;
|
|
|
|
int cpu;
|
|
__u64 expires;
|
|
__u64 interval;
|
|
|
|
void (*function)(unsigned long);
|
|
unsigned long data;
|
|
};
|
|
|
|
/* the vtimer value will wrap after ca. 71 years */
|
|
struct vtimer_queue {
|
|
struct list_head list;
|
|
spinlock_t lock;
|
|
__u64 timer; /* last programmed timer */
|
|
__u64 elapsed; /* elapsed time of timer expire values */
|
|
__u64 idle; /* temp var for idle */
|
|
int do_spt; /* =1: reprogram cpu timer in 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);
|
|
|
|
extern void init_cpu_vtimer(void);
|
|
extern void vtime_init(void);
|
|
|
|
extern void vtime_stop_cpu(void);
|
|
extern void vtime_start_leave(void);
|
|
|
|
#endif /* __KERNEL__ */
|
|
|
|
#endif /* _ASM_S390_TIMER_H */
|