]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - include/linux/compiler-gcc4.h
CRED: Constify the kernel_cap_t arguments to the capset LSM hooks
[linux-2.6.git] / include / linux / compiler-gcc4.h
index fd0cc7c4a636e77dbf5a502b31b85f760cb088e9..974f5b7bb205b749a0eb8b2e959b95e829244602 100644 (file)
@@ -1,18 +1,11 @@
-/* Never include this file directly.  Include <linux/compiler.h> instead.  */
+#ifndef __LINUX_COMPILER_H
+#error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead."
+#endif
 
 /* These definitions are for GCC v4.x.  */
 #include <linux/compiler-gcc.h>
 
-#ifdef CONFIG_FORCED_INLINING
-# undef inline
-# undef __inline__
-# undef __inline
-# define inline                        inline          __attribute__((always_inline))
-# define __inline__            __inline__      __attribute__((always_inline))
-# define __inline              __inline        __attribute__((always_inline))
-#endif
-
-#define __attribute_used__     __attribute__((__used__))
+#define __used                 __attribute__((__used__))
 #define __must_check           __attribute__((warn_unused_result))
 #define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
 #define __always_inline                inline __attribute__((always_inline))
  * code
  */
 #define uninitialized_var(x) x = x
+
+#if !(__GNUC__ == 4 && __GNUC_MINOR__ < 3)
+/* Mark functions as cold. gcc will assume any path leading to a call
+   to them will be unlikely.  This means a lot of manual unlikely()s
+   are unnecessary now for any paths leading to the usual suspects
+   like BUG(), printk(), panic() etc. [but let's keep them for now for
+   older compilers]
+
+   Early snapshots of gcc 4.3 don't support this and we can't detect this
+   in the preprocessor, but we can live with this because they're unreleased.
+   Maketime probing would be overkill here.
+
+   gcc also has a __attribute__((__hot__)) to move hot functions into
+   a special section, but I don't see any sense in this right now in
+   the kernel context */
+#define __cold                 __attribute__((__cold__))
+
+#endif