vserver 2.0 rc7
[linux-2.6.git] / include / linux / compiler.h
index 0fd06b0..d737821 100644 (file)
@@ -8,6 +8,7 @@
 # define __kernel      /* default address space */
 # define __safe                __attribute__((safe))
 # define __force       __attribute__((force))
+# define __nocast      __attribute__((nocast))
 # define __iomem       __attribute__((noderef, address_space(2)))
 # define __acquires(x) __attribute__((context(0,1)))
 # define __releases(x) __attribute__((context(1,0)))
@@ -21,6 +22,7 @@ extern void __chk_io_ptr(void __iomem *);
 # define __kernel
 # define __safe
 # define __force
+# define __nocast
 # define __iomem
 # define __chk_user_ptr(x) (void)0
 # define __chk_io_ptr(x) (void)0
@@ -34,8 +36,10 @@ extern void __chk_io_ptr(void __iomem *);
 
 #ifdef __KERNEL__
 
-#if __GNUC__ > 3
-# include <linux/compiler-gcc+.h>      /* catch-all for GCC 4, 5, etc. */
+#if __GNUC__ > 4
+#error no compiler-gcc.h file for this gcc version
+#elif __GNUC__ == 4
+# include <linux/compiler-gcc4.h>
 #elif __GNUC__ == 3
 # include <linux/compiler-gcc3.h>
 #elif __GNUC__ == 2
@@ -72,10 +76,10 @@ extern void __chk_io_ptr(void __iomem *);
     (typeof(ptr)) (__ptr + (off)); })
 #endif
 
-#endif /* __ASSEMBLY__ */
-
 #endif /* __KERNEL__ */
 
+#endif /* __ASSEMBLY__ */
+
 /*
  * Allow us to mark functions as 'deprecated' and have gcc emit a nice
  * warning for each use, in hopes of speeding the functions removal.
@@ -86,6 +90,12 @@ extern void __chk_io_ptr(void __iomem *);
 # define __deprecated          /* unimplemented */
 #endif
 
+#ifdef MODULE
+#define __deprecated_for_modules __deprecated
+#else
+#define __deprecated_for_modules
+#endif
+
 #ifndef __must_check
 #define __must_check
 #endif