VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / kernel / vserver / sysctl.c
index 32fde9a..298c62f 100644 (file)
 
 enum {
         CTL_DEBUG_SWITCH = 1,
+        CTL_DEBUG_XID,
+        CTL_DEBUG_NID,
+        CTL_DEBUG_NET,
         CTL_DEBUG_LIMIT,
-        CTL_DEBUG_DLIMIT,
+        CTL_DEBUG_DLIM,
+        CTL_DEBUG_CVIRT,
 };
 
 
 unsigned int vx_debug_switch = 0;
+unsigned int vx_debug_xid = 0;
+unsigned int vx_debug_nid = 0;
+unsigned int vx_debug_net = 0;
 unsigned int vx_debug_limit = 0;
-unsigned int vx_debug_dlimit = 0;
+unsigned int vx_debug_dlim = 0;
+unsigned int vx_debug_cvirt = 0;
 
 
 static struct ctl_table_header *vserver_table_header;
@@ -62,13 +70,13 @@ void vserver_unregister_sysctl(void)
 
 
 static int proc_dodebug(ctl_table *table, int write,
-       struct file *file, void *buffer, size_t *lenp)
+       struct file *filp, void __user *buffer, size_t *lenp, loff_t *ppos)
 {
        char            tmpbuf[20], *p, c;
        unsigned int    value;
        size_t          left, len;
 
-       if ((file->f_pos && !write) || !*lenp) {
+       if ((*ppos && !write) || !*lenp) {
                *lenp = 0;
                return 0;
        }
@@ -114,7 +122,7 @@ static int proc_dodebug(ctl_table *table, int write,
 
 done:
        *lenp -= left;
-       file->f_pos += *lenp;
+       *ppos += *lenp;
        return 0;
 }
        
@@ -129,6 +137,30 @@ static ctl_table debug_table[] = {
                 .mode           = 0644,
                 .proc_handler   = &proc_dodebug
         },
+        {
+                .ctl_name       = CTL_DEBUG_XID,
+                .procname       = "debug_xid",
+                .data           = &vx_debug_xid,
+                .maxlen         = sizeof(int),
+                .mode           = 0644,
+                .proc_handler   = &proc_dodebug
+        },
+        {
+                .ctl_name       = CTL_DEBUG_NID,
+                .procname       = "debug_nid",
+                .data           = &vx_debug_nid,
+                .maxlen         = sizeof(int),
+                .mode           = 0644,
+                .proc_handler   = &proc_dodebug
+        },
+        {
+                .ctl_name       = CTL_DEBUG_NET,
+                .procname       = "debug_net",
+                .data           = &vx_debug_net,
+                .maxlen         = sizeof(int),
+                .mode           = 0644,
+                .proc_handler   = &proc_dodebug
+        },
         {
                 .ctl_name       = CTL_DEBUG_LIMIT,
                 .procname       = "debug_limit",
@@ -138,9 +170,17 @@ static ctl_table debug_table[] = {
                 .proc_handler   = &proc_dodebug
         },
         {
-                .ctl_name       = CTL_DEBUG_DLIMIT,
-                .procname       = "debug_dlimit",
-                .data           = &vx_debug_dlimit,
+                .ctl_name       = CTL_DEBUG_DLIM,
+                .procname       = "debug_dlim",
+                .data           = &vx_debug_dlim,
+                .maxlen         = sizeof(int),
+                .mode           = 0644,
+                .proc_handler   = &proc_dodebug
+        },
+        {
+                .ctl_name       = CTL_DEBUG_CVIRT,
+                .procname       = "debug_cvirt",
+                .data           = &vx_debug_cvirt,
                 .maxlen         = sizeof(int),
                 .mode           = 0644,
                 .proc_handler   = &proc_dodebug
@@ -158,3 +198,6 @@ static ctl_table vserver_table[] = {
         { .ctl_name = 0 }
 };
 
+
+EXPORT_SYMBOL_GPL(vx_debug_dlim);
+