#undef NDEBUG
[util-vserver.git] / util-vserver / lib / syscall-compat.hc
index 6279d0a..d827e83 100644 (file)
 
 #include <unistd.h>
 
-static inline ALWAYSINLINE int
+static inline ALWAYSINLINE xid_t
 vc_new_s_context_compat(xid_t ctx, unsigned int remove_cap, unsigned int flags)
 {
   struct vcmd_new_s_context_v1 msg;
   msg.remove_cap = remove_cap;
   msg.flags      = flags;
 
-  return vserver(VC_CMD(COMPAT, 1, 1), CTX_USER2KERNEL(ctx), &msg);
+  return vserver(VCMD_new_s_context, CTX_USER2KERNEL(ctx), &msg);
 }
 
 static inline ALWAYSINLINE int
@@ -42,24 +42,17 @@ vc_set_ipv4root_compat(uint32_t  bcast, size_t nb, struct vc_ip_mask_pair const
   struct vcmd_set_ipv4root_v3  msg;
   size_t                       i;
 
-  if (nb>=NB_IPV4ROOT) {
-    errno = -EINVAL;
+  if (nb>NB_IPV4ROOT) {
+    errno = -EOVERFLOW;
     return -1;
   }
 
   msg.broadcast = bcast;
 
   for (i=0; i<nb; ++i) {
-    msg.ip_mask_pair[i].ip   = ips[i].ip;
-    msg.ip_mask_pair[i].mask = ips[i].mask;
+    msg.nx_mask_pair[i].ip   = ips[i].ip;
+    msg.nx_mask_pair[i].mask = ips[i].mask;
   }
 
-  return vserver(VC_CMD(COMPAT, 2, 3), nb, &msg);
-}
-
-static inline ALWAYSINLINE int
-vc_chrootsafe_compat(char const *dir)
-{
-  vc_tell_unsafe_chroot();
-  return chroot(dir);
+  return vserver(VCMD_set_ipv4root, nb, &msg);
 }