VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / kernel / vserver / cvirt.c
1 /*
2  *  linux/kernel/vserver/cvirt.c
3  *
4  *  Virtual Server: Context Virtualization
5  *
6  *  Copyright (C) 2004  Herbert Pƶtzl
7  *
8  *  V0.01  broken out from limit.c
9  *
10  */
11
12 #include <linux/config.h>
13 #include <linux/vserver/cvirt.h>
14 #include <linux/vserver/context.h>
15 #include <linux/vserver/switch.h>
16 #include <linux/vs_base.h>
17 #include <linux/vs_context.h>
18 #include <linux/vs_cvirt.h>
19
20 #include <asm/errno.h>
21 #include <asm/uaccess.h>
22
23
24 void vx_vsi_uptime(struct timespec *uptime, struct timespec *idle)
25 {
26         struct vx_info *vxi = current->vx_info;
27         struct timeval bias;
28
29         jiffies_to_timeval(vxi->cvirt.bias_jiffies - INITIAL_JIFFIES, &bias);
30
31         set_normalized_timespec(uptime,
32                 uptime->tv_sec - bias.tv_sec,
33                 uptime->tv_nsec - bias.tv_usec*1000);
34         if (!idle)
35                 return;
36         set_normalized_timespec(idle,
37                 idle->tv_sec - vxi->cvirt.bias_idle.tv_sec,
38                 idle->tv_nsec - vxi->cvirt.bias_idle.tv_nsec);
39         return;
40 }
41
42 uint64_t vx_idle_jiffies()
43 {
44         return init_task.utime + init_task.stime;
45 }
46