vserver 1.9.5.x5
[linux-2.6.git] / include / linux / compiler.h
index 62949aa..0fd06b0 100644 (file)
@@ -1,12 +1,19 @@
 #ifndef __LINUX_COMPILER_H
 #define __LINUX_COMPILER_H
 
+#ifndef __ASSEMBLY__
+
 #ifdef __CHECKER__
 # define __user                __attribute__((noderef, address_space(1)))
 # define __kernel      /* default address space */
 # define __safe                __attribute__((safe))
 # define __force       __attribute__((force))
 # define __iomem       __attribute__((noderef, address_space(2)))
+# define __acquires(x) __attribute__((context(0,1)))
+# define __releases(x) __attribute__((context(1,0)))
+# define __acquire(x)  __context__(1)
+# define __release(x)  __context__(-1)
+# define __cond_lock(x)        ((x) ? ({ __context__(1); 1; }) : 0)
 extern void __chk_user_ptr(void __user *);
 extern void __chk_io_ptr(void __iomem *);
 #else
@@ -17,11 +24,16 @@ extern void __chk_io_ptr(void __iomem *);
 # define __iomem
 # define __chk_user_ptr(x) (void)0
 # define __chk_io_ptr(x) (void)0
+# define __builtin_warning(x, y...) (1)
+# define __acquires(x)
+# define __releases(x)
+# define __acquire(x) (void)0
+# define __release(x) (void)0
+# define __cond_lock(x) (x)
 #endif
 
 #ifdef __KERNEL__
 
-#ifndef __ASSEMBLY__
 #if __GNUC__ > 3
 # include <linux/compiler-gcc+.h>      /* catch-all for GCC 4, 5, etc. */
 #elif __GNUC__ == 3
@@ -31,7 +43,6 @@ extern void __chk_io_ptr(void __iomem *);
 #else
 # error Sorry, your compiler is too old/not recognized.
 #endif
-#endif
 
 /* Intel compiler defines __GNUC__. So we will overwrite implementations
  * coming from above header files here
@@ -61,6 +72,8 @@ extern void __chk_io_ptr(void __iomem *);
     (typeof(ptr)) (__ptr + (off)); })
 #endif
 
+#endif /* __ASSEMBLY__ */
+
 #endif /* __KERNEL__ */
 
 /*