Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / kernel / vserver / cvirt_init.h
1
2
3 #include <linux/config.h>
4
5
6 extern uint64_t vx_idle_jiffies(void);
7
8 static inline void vx_info_init_cvirt(struct _vx_cvirt *cvirt)
9 {
10         uint64_t idle_jiffies = vx_idle_jiffies();
11         uint64_t nsuptime;
12
13         do_posix_clock_monotonic_gettime(&cvirt->bias_uptime);
14         nsuptime = (unsigned long long)cvirt->bias_uptime.tv_sec
15                 * NSEC_PER_SEC + cvirt->bias_uptime.tv_nsec;
16         cvirt->bias_clock = nsec_to_clock_t(nsuptime);
17
18         jiffies_to_timespec(idle_jiffies, &cvirt->bias_idle);
19         atomic_set(&cvirt->nr_threads, 0);
20         atomic_set(&cvirt->nr_running, 0);
21         atomic_set(&cvirt->nr_uninterruptible, 0);
22         atomic_set(&cvirt->nr_onhold, 0);
23
24         down_read(&uts_sem);
25         cvirt->utsname = system_utsname;
26         up_read(&uts_sem);
27
28         spin_lock_init(&cvirt->load_lock);
29         cvirt->load_last = jiffies;
30         atomic_set(&cvirt->load_updates, 0);
31         cvirt->load[0] = 0;
32         cvirt->load[1] = 0;
33         cvirt->load[2] = 0;
34         atomic_set(&cvirt->total_forks, 0);
35
36         spin_lock_init(&cvirt->syslog.logbuf_lock);
37         init_waitqueue_head(&cvirt->syslog.log_wait);
38         cvirt->syslog.log_start = 0;
39         cvirt->syslog.log_end = 0;
40         cvirt->syslog.con_start = 0;
41         cvirt->syslog.logged_chars = 0;
42 }
43
44 static inline void vx_info_exit_cvirt(struct _vx_cvirt *cvirt)
45 {
46 #ifdef  CONFIG_VSERVER_DEBUG
47         int value;
48
49         vxwprintk((value = atomic_read(&cvirt->nr_threads)),
50                 "!!! cvirt: %p[nr_threads] = %d on exit.",
51                 cvirt, value);
52         vxwprintk((value = atomic_read(&cvirt->nr_running)),
53                 "!!! cvirt: %p[nr_running] = %d on exit.",
54                 cvirt, value);
55         vxwprintk((value = atomic_read(&cvirt->nr_uninterruptible)),
56                 "!!! cvirt: %p[nr_uninterruptible] = %d on exit.",
57                 cvirt, value);
58         vxwprintk((value = atomic_read(&cvirt->nr_onhold)),
59                 "!!! cvirt: %p[nr_onhold] = %d on exit.",
60                 cvirt, value);
61 #endif
62         return;
63 }
64
65 static inline void vx_info_init_cacct(struct _vx_cacct *cacct)
66 {
67         int i,j;
68
69         for (i=0; i<5; i++) {
70                 for (j=0; j<3; j++) {
71                         atomic_set(&cacct->sock[i][j].count, 0);
72                         atomic_set(&cacct->sock[i][j].total, 0);
73                 }
74         }
75 }
76
77 static inline void vx_info_exit_cacct(struct _vx_cacct *cacct)
78 {
79         return;
80 }
81