1 #ifndef _VX_CVIRT_PROC_H
2 #define _VX_CVIRT_PROC_H
4 #include <linux/nsproxy.h>
5 #include <linux/mnt_namespace.h>
6 #include <linux/utsname.h>
11 int vx_info_proc_nsproxy(struct nsproxy *nsproxy, char *buffer)
13 struct mnt_namespace *ns;
14 struct uts_namespace *uts;
15 struct ipc_namespace *ipc;
23 length += sprintf(buffer + length,
24 "NSProxy:\t%p [%p,%p,%p]\n",
25 nsproxy, nsproxy->mnt_ns,
26 nsproxy->uts_ns, nsproxy->ipc_ns);
32 path = kmalloc(PATH_MAX, GFP_KERNEL);
37 root = d_path(mnt->mnt_root, mnt->mnt_parent, path, PATH_MAX-2);
38 length += sprintf(buffer + length,
39 "Namespace:\t%p [#%u]\n"
41 ,ns , atomic_read(&ns->count)
46 uts = nsproxy->uts_ns;
50 length += sprintf(buffer + length,
57 ,__NEW_UTS_LEN, uts->name.sysname
58 ,__NEW_UTS_LEN, uts->name.nodename
59 ,__NEW_UTS_LEN, uts->name.release
60 ,__NEW_UTS_LEN, uts->name.version
61 ,__NEW_UTS_LEN, uts->name.machine
62 ,__NEW_UTS_LEN, uts->name.domainname
66 ipc = nsproxy->ipc_ns;
70 length += sprintf(buffer + length,
71 "SEMS:\t\t%d %d %d %d %d\n"
73 "SHM:\t\t%lu %lu %d %d\n"
74 ,ipc->sem_ctls[0], ipc->sem_ctls[1]
75 ,ipc->sem_ctls[2], ipc->sem_ctls[3]
77 ,ipc->msg_ctlmax, ipc->msg_ctlmnb, ipc->msg_ctlmni
78 ,(unsigned long)ipc->shm_ctlmax
79 ,(unsigned long)ipc->shm_ctlall
80 ,ipc->shm_ctlmni, ipc->shm_tot
89 #include <linux/sched.h>
91 #define LOAD_INT(x) ((x) >> FSHIFT)
92 #define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)
95 int vx_info_proc_cvirt(struct _vx_cvirt *cvirt, char *buffer)
100 length += sprintf(buffer + length,
101 "BiasUptime:\t%lu.%02lu\n",
102 (unsigned long)cvirt->bias_uptime.tv_sec,
103 (cvirt->bias_uptime.tv_nsec / (NSEC_PER_SEC / 100)));
105 a = cvirt->load[0] + (FIXED_1/200);
106 b = cvirt->load[1] + (FIXED_1/200);
107 c = cvirt->load[2] + (FIXED_1/200);
108 length += sprintf(buffer + length,
113 "load_updates:\t%d\n"
114 "loadavg:\t%d.%02d %d.%02d %d.%02d\n"
116 ,atomic_read(&cvirt->nr_threads)
117 ,atomic_read(&cvirt->nr_running)
118 ,atomic_read(&cvirt->nr_uninterruptible)
119 ,atomic_read(&cvirt->nr_onhold)
120 ,atomic_read(&cvirt->load_updates)
121 ,LOAD_INT(a), LOAD_FRAC(a)
122 ,LOAD_INT(b), LOAD_FRAC(b)
123 ,LOAD_INT(c), LOAD_FRAC(c)
124 ,atomic_read(&cvirt->total_forks)
131 int vx_info_proc_cvirt_pc(struct _vx_cvirt_pc *cvirt_pc,
132 char *buffer, int cpu)
138 #endif /* _VX_CVIRT_PROC_H */