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