|
|
@ -55,4 +55,26 @@ |
|
|
|
#define CLRFLAG(v,f) ((v) &=~FLAG(f)) |
|
|
|
#define CHKFLAG(v,f) ((v) & FLAG(f) ? true : false) |
|
|
|
|
|
|
|
// some nice optional GNUC features
|
|
|
|
#if __GNUC__ >= 3 |
|
|
|
#define __must_check __attribute__ ((warn_unused_result)) |
|
|
|
#define __deprecated __attribute__ ((deprecated)) |
|
|
|
/* likely() and unlikely() can be used to mark boolean expressions
|
|
|
|
as (not) likely true which will help the compiler to optimise */ |
|
|
|
#define likely(x) __builtin_expect (!!(x), 1) |
|
|
|
#define unlikely(x) __builtin_expect (!!(x), 0) |
|
|
|
#else |
|
|
|
#define __must_check /* no warn_unused_result */ |
|
|
|
#define __deprecated /* no deprecated */ |
|
|
|
#define likely(x) (x) |
|
|
|
#define unlikely(x) (x) |
|
|
|
#endif |
|
|
|
|
|
|
|
// cold functions are unlikely() to be called
|
|
|
|
#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4 |
|
|
|
#define __cold __attribute__ ((__cold__)) |
|
|
|
#else |
|
|
|
#define __cold /* no cold marker */ |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif |
|
|
|