X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Flib%2Fvserver-internal.h;h=0ea138641442a36163228ebcbabef7c084dec46a;hb=b6aa9eab2e2e434a1964d1fa5d5febcf94d884fd;hp=601f687efebd0e95fed92ea0a8868be638683e9a;hpb=4c0037aecd96cf23da727c12381723ab5cbfa5e4;p=util-vserver.git diff --git a/util-vserver/lib/vserver-internal.h b/util-vserver/lib/vserver-internal.h index 601f687..0ea1386 100644 --- a/util-vserver/lib/vserver-internal.h +++ b/util-vserver/lib/vserver-internal.h @@ -41,17 +41,21 @@ #if 1 # define VC_SELECT(ID) case ID: if(1) # define CALL_VC(...) \ - switch (utilvserver_checkCompatVersion()&~0xff) { \ - case -1 : 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 @@ -86,6 +90,21 @@ # 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)