added new management sources
[util-vserver.git] / util-vserver / lib / vserver-internal.h
index 9c051b2..0ea1386 100644 (file)
 #if 1
 #  define VC_SELECT(ID)        case ID: if(1)
 #  define CALL_VC(...)                                 \
-  switch (utilvserver_checkCompatVersion()&~0xff) {    \
-    case -1 & ~0xff    :  if (1) break;                \
-      VC_SUFFIX, __VA_ARGS__ , VC_PREFIX;              \
-    default    :  errno = EINVAL;                      \
-  }                                                    \
-  return -1
+  do {                                                 \
+    switch (utilvserver_checkCompatVersion()&~0xff) {  \
+      case -1 & ~0xff  :  if (1) break;                \
+       VC_SUFFIX, __VA_ARGS__ , VC_PREFIX;             \
+      default  :  errno = EINVAL;                      \
+    }                                                  \
+    return -1;                                         \
+  } while (0)
 #else
 #  define VC_SELECT(ID) if (1)
-#  define CALL_VC(...)                         \
-  if (1) {} VC_SUFFIX, __VA_ARGS__, VC_PREFIX; \
-  errno = ENOSYS; return -1
+#  define CALL_VC(...)                                 \
+  do {                                                 \
+    if (1) {} VC_SUFFIX, __VA_ARGS__, VC_PREFIX;       \
+    errno = ENOSYS; return -1;                         \
+  } while (0)
 #endif
 
 #ifdef VC_ENABLE_API_COMPAT
 #  define CTX_KERNEL2USER(X)   (X)
 #endif
 
+#if 1
+#  define EXT2FLAGS_USER2KERNEL(X)     (((X) & ~(VC_IMMUTABLE_FILE_FL|VC_IMMUTABLE_LINK_FL)) | \
+                                        ((X) & VC_IMMUTABLE_FILE_FL ? EXT2_IMMUTABLE_FILE_FL : 0) | \
+                                        ((X) & VC_IMMUTABLE_LINK_FL ? EXT2_IMMUTABLE_LINK_FL : 0))
+#  define EXT2FLAGS_KERNEL2USER(X)     (((X) & ~(EXT2_IMMUTABLE_FILE_FL|EXT2_IMMUTABLE_LINK_FL)) | \
+                                        ((X) & EXT2_IMMUTABLE_FILE_FL ? VC_IMMUTABLE_FILE_FL : 0) | \
+                                        ((X) & EXT2_IMMUTABLE_LINK_FL ? VC_IMMUTABLE_LINK_FL : 0))
+#else
+#  define EXT2FLAGS_KERNEL2USER(X)     (X)
+#  define EXT2FLAGS_USER2KERNEL(X)     (X)
+#endif
+
+
+#define EXT2_IOC_GETCONTEXT            _IOR('x', 1, long)
+#define EXT2_IOC_SETCONTEXT            _IOW('x', 2, long)
 
 #ifndef HAVE_VSERVER
 #if defined(__pic__) && defined(__i386)