5 # define __aligned_16 __attribute__((aligned(16)))
9 # define likely(x) __builtin_expect(!!(x), 1)
13 # define unlikely(x) __builtin_expect(!!(x), 0)
17 # define __extension__
21 # define __deprecated /* unimplemented */
25 # define __read_mostly __attribute__((__section__(".data.read_mostly")))
28 #ifndef __always_inline
29 # define __always_inline inline
33 # define __hidden __attribute__((visibility("hidden")))
37 # define array_size(x) (sizeof(x) / sizeof((x)[0]) + __must_be_array(x))
40 #ifndef __must_be_array
41 # define __must_be_array(x) \
42 build_bug_on_zero(__builtin_types_compatible_p(typeof(x), typeof(&x[0])))
48 typeof (a) _a = (a); \
49 typeof (b) _b = (b); \
57 typeof (a) _a = (a); \
58 typeof (b) _b = (b); \
64 # define bug() __builtin_trap()
67 #ifndef build_bug_on_zero
68 # define build_bug_on_zero(e) (sizeof(char[1 - 2 * !!(e)]) - 1)
71 #endif /* BUILT_IN_H */