• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _TOOLS_LINUX_COMPILER_H_
2 #define _TOOLS_LINUX_COMPILER_H_
3 
4 #ifndef __always_inline
5 # define __always_inline	inline __attribute__((always_inline))
6 #endif
7 
8 #define __user
9 
10 #ifndef __attribute_const__
11 # define __attribute_const__
12 #endif
13 
14 #ifndef __maybe_unused
15 # define __maybe_unused		__attribute__((unused))
16 #endif
17 
18 #ifndef __packed
19 # define __packed		__attribute__((__packed__))
20 #endif
21 
22 #ifndef __force
23 # define __force
24 #endif
25 
26 #ifndef __weak
27 # define __weak			__attribute__((weak))
28 #endif
29 
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 
38 #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
39 
40 #endif /* _TOOLS_LINUX_COMPILER_H */
41