home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / compiler-gcc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.1 KB  |  33 lines

  1. /* Never include this file directly.  Include <linux/compiler.h> instead.  */
  2.  
  3. /*
  4.  * Common definitions for all gcc versions go here.
  5.  */
  6.  
  7.  
  8. /* Optimization barrier */
  9. /* The "volatile" is due to gcc bugs */
  10. #define barrier() __asm__ __volatile__("": : :"memory")
  11.  
  12. /* This macro obfuscates arithmetic on a variable address so that gcc
  13.    shouldn't recognize the original var, and make assumptions about it */
  14. /*
  15.  * Versions of the ppc64 compiler before 4.1 had a bug where use of
  16.  * RELOC_HIDE could trash r30. The bug can be worked around by changing
  17.  * the inline assembly constraint from =g to =r, in this particular
  18.  * case either is valid.
  19.  */
  20. #define RELOC_HIDE(ptr, off)                    \
  21.   ({ unsigned long __ptr;                    \
  22.     __asm__ ("" : "=r"(__ptr) : "0"(ptr));        \
  23.     (typeof(ptr)) (__ptr + (off)); })
  24.  
  25.  
  26. #define inline        inline        __attribute__((always_inline))
  27. #define __inline__    __inline__    __attribute__((always_inline))
  28. #define __inline    __inline    __attribute__((always_inline))
  29. #define __deprecated            __attribute__((deprecated))
  30. #define  noinline            __attribute__((noinline))
  31. #define __attribute_pure__        __attribute__((pure))
  32. #define __attribute_const__        __attribute__((__const__))
  33.