New kernel APIs
authorDaniel Hokka Zakrisson <daniel@hozac.com>
Tue, 31 May 2011 09:44:07 +0000 (11:44 +0200)
committerDaniel Hokka Zakrisson <daniel@hozac.com>
Tue, 31 May 2011 12:19:19 +0000 (14:19 +0200)
kernel/limit_cmd.h
kernel/network_cmd.h
kernel/sched_cmd.h
lib/syscall_netremove-netv2.hc

index f67f7fc..594e3bc 100644 (file)
@@ -7,6 +7,7 @@
 #define VCMD_get_rlimit                VC_CMD(RLIMIT, 1, 0)
 #define VCMD_set_rlimit                VC_CMD(RLIMIT, 2, 0)
 #define VCMD_get_rlimit_mask   VC_CMD(RLIMIT, 3, 0)
+#define VCMD_reset_hits                VC_CMD(RLIMIT, 7, 0)
 #define VCMD_reset_minmax      VC_CMD(RLIMIT, 9, 0)
 
 struct vcmd_ctx_rlimit_v0 {
index 3327777..dc48f91 100644 (file)
@@ -34,8 +34,8 @@ struct        vcmd_net_addr_v0 {
        struct in_addr mask[4];
 };
 
-#define VCMD_net_add_ipv4      VC_CMD(NETALT, 1, 1)
-#define VCMD_net_remove_ipv4   VC_CMD(NETALT, 2, 1)
+#define VCMD_net_add_ipv4_v1   VC_CMD(NETALT, 1, 1)
+#define VCMD_net_remove_ipv4_v1        VC_CMD(NETALT, 2, 1)
 
 struct vcmd_net_addr_ipv4_v1 {
        uint16_t type;
@@ -44,6 +44,17 @@ struct       vcmd_net_addr_ipv4_v1 {
        struct in_addr mask;
 };
 
+#define VCMD_net_add_ipv4      VC_CMD(NETALT, 1, 2)
+#define VCMD_net_rem_ipv4      VC_CMD(NETALT, 2, 2)
+
+struct vcmd_net_addr_ipv4_v2 {
+       uint16_t type;
+       uint16_t flags;
+       struct in_addr ip;
+       struct in_addr ip2;
+       struct in_addr mask;
+};
+
 #define VCMD_net_add_ipv6      VC_CMD(NETALT, 3, 1)
 #define VCMD_net_remove_ipv6   VC_CMD(NETALT, 4, 1)
 
index c18fb9e..3cf10f3 100644 (file)
@@ -89,4 +89,12 @@ struct       vcmd_sched_info {
        int32_t vavavoom;
 };
 
+struct vcmd_prio_bias {
+       int32_t cpu_id;
+       int32_t prio_bias;
+};
+
+#define VCMD_set_prio_bias     VC_CMD(SCHED, 4, 0)
+#define VCMD_get_prio_bias     VC_CMD(SCHED, 5, 0)
+
 #endif /* _VX_SCHED_CMD_H */
index da03ef0..1e916aa 100644 (file)
@@ -34,7 +34,7 @@ vc_net_remove_netv2(nid_t nid, struct vc_net_addr const *info)
     ret = vserver(VCMD_net_remove_ipv6, NID_USER2KERNEL(nid), &k_ipv6);
     if (ret == -1 && errno != ENOSYS)
       return -1;
-    return vserver(VCMD_net_remove_ipv4, NID_USER2KERNEL(nid), &k_ipv4);
+    return vserver(VCMD_net_remove_ipv4_v1, NID_USER2KERNEL(nid), &k_ipv4);
   }
   switch (info->vna_type & (VC_NXA_TYPE_IPV4 | VC_NXA_TYPE_IPV6)) {
     case VC_NXA_TYPE_IPV4: {
@@ -45,7 +45,7 @@ vc_net_remove_netv2(nid_t nid, struct vc_net_addr const *info)
       k_info.ip.s_addr   = info->vna_v4_ip.s_addr;
       k_info.mask.s_addr = info->vna_v4_mask.s_addr;
 
-      return vserver(VCMD_net_remove_ipv4, NID_USER2KERNEL(nid), &k_info);
+      return vserver(VCMD_net_remove_ipv4_v1, NID_USER2KERNEL(nid), &k_info);
     }
     case VC_NXA_TYPE_IPV6: {
       struct vcmd_net_addr_ipv6_v1     k_info;