Namhyung Kim | 8a625c1 | 2014-01-09 23:00:52 +0900 | [diff] [blame] | 1 | #ifndef _TOOLS_LINUX_COMPILER_H_ |
| 2 | #define _TOOLS_LINUX_COMPILER_H_ |
Frederic Weisbecker | 5a116dd | 2009-10-17 17:12:33 +0200 | [diff] [blame] | 3 | |
| 4 | #ifndef __always_inline |
Ingo Molnar | 7a10822 | 2013-10-07 11:26:18 +0200 | [diff] [blame] | 5 | # define __always_inline inline __attribute__((always_inline)) |
Frederic Weisbecker | 5a116dd | 2009-10-17 17:12:33 +0200 | [diff] [blame] | 6 | #endif |
Ingo Molnar | 7a10822 | 2013-10-07 11:26:18 +0200 | [diff] [blame] | 7 | |
Frederic Weisbecker | 5a116dd | 2009-10-17 17:12:33 +0200 | [diff] [blame] | 8 | #define __user |
Ingo Molnar | 7a10822 | 2013-10-07 11:26:18 +0200 | [diff] [blame] | 9 | |
Josh Boyer | 195bcbf | 2011-08-18 07:37:21 -0400 | [diff] [blame] | 10 | #ifndef __attribute_const__ |
Ingo Molnar | 7a10822 | 2013-10-07 11:26:18 +0200 | [diff] [blame] | 11 | # define __attribute_const__ |
Josh Boyer | 195bcbf | 2011-08-18 07:37:21 -0400 | [diff] [blame] | 12 | #endif |
Frederic Weisbecker | 5a116dd | 2009-10-17 17:12:33 +0200 | [diff] [blame] | 13 | |
Irina Tirdea | 1d037ca | 2012-09-11 01:15:03 +0300 | [diff] [blame] | 14 | #ifndef __maybe_unused |
Ingo Molnar | 7a10822 | 2013-10-07 11:26:18 +0200 | [diff] [blame] | 15 | # define __maybe_unused __attribute__((unused)) |
Irina Tirdea | 1d037ca | 2012-09-11 01:15:03 +0300 | [diff] [blame] | 16 | #endif |
Ingo Molnar | 7a10822 | 2013-10-07 11:26:18 +0200 | [diff] [blame] | 17 | |
| 18 | #ifndef __packed |
| 19 | # define __packed __attribute__((__packed__)) |
| 20 | #endif |
Arnaldo Carvalho de Melo | 618038d | 2010-03-25 19:58:59 -0300 | [diff] [blame] | 21 | |
Irina Tirdea | 86d5a70 | 2012-09-11 01:14:59 +0300 | [diff] [blame] | 22 | #ifndef __force |
Ingo Molnar | 7a10822 | 2013-10-07 11:26:18 +0200 | [diff] [blame] | 23 | # define __force |
Irina Tirdea | 86d5a70 | 2012-09-11 01:14:59 +0300 | [diff] [blame] | 24 | #endif |
| 25 | |
Ingo Molnar | fb1c918 | 2013-10-01 13:26:13 +0200 | [diff] [blame] | 26 | #ifndef __weak |
| 27 | # define __weak __attribute__((weak)) |
| 28 | #endif |
| 29 | |
Namhyung Kim | 835d44b | 2014-01-09 23:00:53 +0900 | [diff] [blame] | 30 | #ifndef likely |
| 31 | # define likely(x) __builtin_expect(!!(x), 1) |
| 32 | #endif |
| 33 | |
| 34 | #ifndef unlikely |
| 35 | # define unlikely(x) __builtin_expect(!!(x), 0) |
| 36 | #endif |
| 37 | |
Jiri Olsa | 73a31b7 | 2014-05-05 13:16:41 +0200 | [diff] [blame] | 38 | #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x)) |
| 39 | |
Namhyung Kim | 8a625c1 | 2014-01-09 23:00:52 +0900 | [diff] [blame] | 40 | #endif /* _TOOLS_LINUX_COMPILER_H */ |