21 |
#endif |
#endif |
22 |
|
|
23 |
/* How to declare a function that *must* be inlined */ |
/* How to declare a function that *must* be inlined */ |
24 |
|
/* Use "extern inline" even in the gcc3+ case to avoid warnings in ctype.h */ |
25 |
#ifdef __GNUC__ |
#ifdef __GNUC__ |
26 |
# if __GNUC__ >= 3 |
# if __GNUC__ >= 3 |
27 |
# define __must_inline static __inline__ __attribute__((always_inline)) |
# define __must_inline extern __inline__ __attribute__((always_inline)) |
28 |
# else |
# else |
29 |
# define __must_inline extern __inline__ |
# define __must_inline extern __inline__ |
30 |
# endif |
# endif |
93 |
|
|
94 |
/* likely/unlikely */ |
/* likely/unlikely */ |
95 |
#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) |
#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) |
96 |
# define __likely(x) __builtin_expect((x), 1) |
# define __likely(x) __builtin_expect(!!(x), 1) |
97 |
# define __unlikely(x) __builtin_expect((x), 0) |
# define __unlikely(x) __builtin_expect(!!(x), 0) |
98 |
#else |
#else |
99 |
# define __likely(x) (x) |
# define __likely(x) (!!(x)) |
100 |
# define __unlikely(x) (x) |
# define __unlikely(x) (!!(x)) |
101 |
#endif |
#endif |
102 |
|
|
103 |
/* Possibly unused function */ |
/* Possibly unused function */ |