This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / kernel / vserver / cvirt_init.h
1
2 extern uint64_t vx_idle_jiffies(void);
3
4 static inline void vx_info_init_cvirt(struct _vx_cvirt *cvirt)
5 {
6         uint64_t idle_jiffies = vx_idle_jiffies();
7         uint64_t nsuptime;
8
9         do_posix_clock_monotonic_gettime(&cvirt->bias_uptime);
10         nsuptime = (unsigned long long)cvirt->bias_uptime.tv_sec
11                 * NSEC_PER_SEC + cvirt->bias_uptime.tv_nsec;
12         cvirt->bias_clock = nsec_to_clock_t(nsuptime);
13
14         jiffies_to_timespec(idle_jiffies, &cvirt->bias_idle);
15         atomic_set(&cvirt->nr_threads, 0);
16         atomic_set(&cvirt->nr_running, 0);
17         atomic_set(&cvirt->nr_uninterruptible, 0);
18         atomic_set(&cvirt->nr_onhold, 0);
19
20         down_read(&uts_sem);
21         cvirt->utsname = system_utsname;
22         up_read(&uts_sem);
23
24         spin_lock_init(&cvirt->load_lock);
25         cvirt->load_last = jiffies;
26         atomic_set(&cvirt->load_updates, 0);
27         cvirt->load[0] = 0;
28         cvirt->load[1] = 0;
29         cvirt->load[2] = 0;
30 }
31
32 static inline void vx_info_exit_cvirt(struct _vx_cvirt *cvirt)
33 {
34 #ifdef  CONFIG_VSERVER_DEBUG
35         int value;
36
37         vxwprintk((value = atomic_read(&cvirt->nr_threads)),
38                 "!!! cvirt: %p[nr_threads] = %d on exit.",
39                 cvirt, value);
40         vxwprintk((value = atomic_read(&cvirt->nr_running)),
41                 "!!! cvirt: %p[nr_running] = %d on exit.",
42                 cvirt, value);
43         vxwprintk((value = atomic_read(&cvirt->nr_uninterruptible)),
44                 "!!! cvirt: %p[nr_uninterruptible] = %d on exit.",
45                 cvirt, value);
46 #endif
47         return;
48 }
49
50 static inline void vx_info_init_cacct(struct _vx_cacct *cacct)
51 {
52         int i,j;
53
54         for (i=0; i<5; i++) {
55                 for (j=0; j<3; j++) {
56                         atomic_set(&cacct->sock[i][j].count, 0);
57                         atomic_set(&cacct->sock[i][j].total, 0);
58                 }
59         }
60 }
61
62 static inline void vx_info_exit_cacct(struct _vx_cacct *cacct)
63 {
64         return;
65 }
66