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